Jailpy
@Jailpy
I`m just wasting my brain...

Почему поток не работает как надо?

Добрый вечер. Есть поток, если в цикле выводить что-то в консоль, то при изменении переменной isStarted, if - выполняется. Если же в консоль ничего не выводить, то if-не выполняется при изменении переменной. Переменная меняется, когда приходит ответ с сервера. Не пойму, как связан вывод в консоль и работа потока.

Thread thread = new Thread(() -> {
            for(;;){
                System.out.println("asfd");
                if (Globals.isStarted()){
                    lobby.setVisible(false);
                    game_pane.setVisible(true);
                    break;
                }
            }
            while(true){
                if (!Globals.isBlocked()){
                    getmore.setVisible(true);
                } else {
                    getmore.setVisible(false);
                }
            }
        });
        thread.start();
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Jailpy
@Jailpy Автор вопроса
I`m just wasting my brain...
Ошибку понял. Метод isStarted надо было сделать synchronized
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы