3

Future.get( timeout, unit ) は、Javadoc の Object.wait() および Condition.await() について文書化されているのと同じタイプの誤ったウェイクアップの影響を受けやすいですか?

someType  result;
Future<someType> future = executor.submit( new callableTask() );

result = future.get( 1000, TimeUnit.MILLISECONDS );

スレッドがタイムアウト前に終了しないと仮定すると、1000 ミリ秒待たない可能性はありますか? 完全なタイムアウトを待機する (そしてタイムアウト例外を生成する) 必要があるようですが、そうでなければ結果はどうなりますか?

4

1 に答える 1

1

いいえ、より高い同期プリミティブを使用するためです

java.util.concurrent.locks.AbstractQueuedSynchronizer
于 2012-09-27T14:11:37.087 に答える