Java中是否有“阻止直到条件变为真”函数?
我正在为服务器编写一个侦听器线程,目前我正在使用:
while (true){
try {
if (condition){
//do something
condition=false;
}
sleep(1000);
} catch (InterruptedException ex){
Logger.getLogger(server.class.getName()).log(Level.SEVERE, null, ex);
}
}
使用上面的代码,我遇到了运行函数占用所有CPU时间循环的问题。睡眠功能有效,但这似乎是一个临时的解决办法,而不是一个解决办法。
有没有一些函数会阻塞,直到变量“condition”变成“true”?还是连续循环是等待变量值变化的标准方法?