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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽