2012-09-27 68 views
2

Future.get(timeout,unit)容易受到Javadoc中針對Object.wait()和Condition.await()記錄的相同類型的虛假喚醒的影響嗎?虛假喚醒會影響Future.get()嗎?

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

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

假設線程在超時之前沒有結束,是否有可能不會等待1000ms?似乎它必須等待完整的超時(併產生超時異常),否則結果是什麼?

回答

1

沒有,因爲它使用了較高的同步原語

java.util.concurrent.locks.AbstractQueuedSynchronizer