如果要区分这两种情况,则需要保持超时。
long timeout = 2000;long timeoutExpires = System.currentTimeMillis() + timeout;while(dosleep) { wait(timeout); if(System.currentTimeMillis() >= timeoutExpires) { // Get out of loop break; }}也就是说,丹尼斯建议使用
Condition该类是执行此操作的更好方法。



