如何区分等待(长时间超时)退出通知或超时?
2022-09-01 03:13:16
具有此等待声明:
public final native void wait(long timeout) throws InterruptedException;
它可能通过DisruptedException或超时退出,或者因为在另一个线程中调用了 Notify/NotifyAll方法,Exception很容易捕获,但是...
有没有办法知道退出原因是否超时或通知?
编辑:
这是一种棘手的工作方式,(尽管我不喜欢它)
long tBefore=System.currentTimeMillis();
wait(TIMEOUT);
if ((System.currentTimeMillis() - tBefore) > TIMEOUT)
{
//timeout
}