この待機宣言を持つ:
public final native void wait(long timeout) throws InterruptedException;
InterruptedException、またはタイムアウトによって終了する可能性があります。または、別のスレッドで Notify/NotifyAll メソッドが呼び出されたため、例外をキャッチするのは簡単ですが...
終了の原因がタイムアウトか通知かを知る方法はありますか?
編集:
これはうまくいくかもしれないトリッキーな方法です(私は好きではありませんが)
long tBefore=System.currentTimeMillis();
wait(TIMEOUT);
if ((System.currentTimeMillis() - tBefore) > TIMEOUT)
{
//timeout
}