Я пишу поток слушателя для сервера, и в данный момент я использую:
while (true){
try {
if (condition){
//do something
condition=false;
}
sleep(1000);
} catch (InterruptedException ex){
Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
}
}
В приведенном выше коде у меня возникают проблемы с функцией запуска, которая потребляет все время процессора. зацикливание. Функция сна работает, но кажется временным исправлением, а не решением.
Есть ли какая-нибудь функция, которая будет блокироваться, пока переменная 'condition' не станет 'true'? Или постоянный цикл - это стандартный метод ожидания, пока значение переменной не изменится?