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 回答