Я в настоящее время работает отдельную задачу в Java Swingworker
, а вот код (отредактированный для ясности):Java пока цикл не выходя без Println
while (true) {
while (value == 0) {
value = utils.getValue();
System.out.println("Value is zero");
}
System.out.println("Value isn't zero, out of loop");
}
Этот код работает прекрасно. Однако, если я удалю println («Значение равно нулю»), ничего не происходит, и цикл никогда не выходит. Другой поток обрабатывает популяцию значения, которое обновляется примерно через 5 секунд после запуска программы.
Я немного смущен, почему код выполняется только в том случае, если там есть println. Может ли кто-нибудь осветить этот свет?
Вы никогда не «ломаетесь» из внешнего цикла. – Maroun
Мы не можем ответить на этот вопрос, потому что мы не знаем, что делает 'getValue()'. Если 'value' всегда 0, вы не увидите никакого выхода, но он все равно будет работать. –
getValue просто возвращает значение, сохраненное в другом объекте. Значение начинается с нуля, и после примерно 5 секунд обработки значение обновляется. – Tony