Rav*_*sha 0 java multithreading wait
我有一段下面的代码,其中等待时间在别处计算.在某些情况下,等待时间值为0,我注意到当等待时间为零时,线程似乎永远等待.我在Javadoc中找不到任何特定于此案例的内容.我可以为此添加一个检查,但我只需要了解为什么会发生这种情况并且允许发送0等待时间
synchronized (monitor) {
try {
monitor.wait(wait);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
来自Javadocs:
timeout但是,如果为零,则不考虑实时,并且线程只是等待通知.
如果您的目标是避免在wait值为零时等待,则可以添加条件:
if (wait > 0) {
synchronized (monitor) {
try {
monitor.wait(wait);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3361 次 |
| 最近记录: |