虚假的唤醒会影响Future.get()吗?

时间:2012-09-27 14:07:58

标签: java future executor callable

Future.get(timeout,unit)是否容易受到与Javadoc中Object.wait()和Condition.await()记录的相同类型的虚假唤醒的影响?

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

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

假设线程在超时之前没有结束,是否有可能不等待1000ms?好像它必须等待完全超时(并生成超时异常),否则结果会是什么?

1 个答案:

答案 0 :(得分:1)

不,因为它使用更高的同步原语

java.util.concurrent.locks.AbstractQueuedSynchronizer