Mic*_*Boy 2 java multithreading synchronization synchronized wait
我想知道是否可以在不使用notify()的情况下对同步代码使用wait(),如下所示:
wait_on(B):
synchronized(B.monitor) {
B.count--
while (B.count > 0) { /* wait */ }
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
您需要notify或notifyAll来唤醒线程的等待状态.在您的示例中,代码将进入等待并保持在那里(除非被中断).
知道等待,产量和睡眠之间的区别.等待需要在同步块中调用,一旦输入等待锁定被释放,线程将保持该状态,直到调用notify.Yield将线程返回到就绪池,并让调度程序决定何时再次运行它.睡眠意味着线程在一段固定的时间内处于休眠状态(并从那里进入就绪池).
确保在正在同步的同一个对象上调用wait(这是它的B.monitor).
| 归档时间: |
|
| 查看次数: |
2003 次 |
| 最近记录: |