r.v*_*r.v 5 java concurrency operating-system
如果没有正在等待,使用Object.wait()
,任何调用Object.notify()
或无效的线程Object.notifyAll()
.我有一个场景,如果我Object.notify()
在等待集为空时调用,后续调用不Object.wait()
应该让线程等待.如何实现这一目标?信号量可能是我能想到的一种解决方案.有更优雅的解决方案吗?
使用标志指示通知.在进入等待之前读取标志并相应地采取行动.
boolean stopped = false;
public void run(){
synchronized(object){
while(!stopped)
object.wait();
}
}
public void stop(){
synchronized(object){
stopped=true;
object.notify();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3330 次 |
最近记录: |