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();
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
Jailpy
@Jailpy Автор вопроса
I`m just wasting my brain...
Ошибку понял. Метод isStarted надо было сделать synchronized
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы