existe um 'bloco até que a condição se torne verdadeira' em jav
Estou escrevendo um thread de ouvinte para um servidor e, no momento, estou usando:
while (true){
try {
if (condition){
//do something
condition=false;
}
sleep(1000);
} catch (InterruptedException ex){
Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
}
}
Com o código acima, estou enfrentando problemas com a função run que comem todo o tempo da CPU em loop. A função de suspensão funciona, mas parece ser uma correção improvisada, não uma soluçã
Existe alguma função que seria bloqueada até que a variável 'condição' se tornasse 'verdadeira'? Ou o loop contínuo é o método padrão de espera até que o valor de uma variável seja alterado?