ReentrantLock#tryLock(long,TimeUnit) の実装は、ロックを取得しようとすると何をしますか? スレッド A が のロックを実際に所有していて、myLock
スレッド B が呼び出していると仮定するとmyLock.tryLock(10,SECONDS)
、スレッド B はスリープ状態ですか、それとも待機状態ですか?
つまり、この 2 つの実装の違いは次のとおりです。
1.
while (true)
try {
if (readLock.tryLock())
return;
MILLISECONDS.sleep(5);
}catch (InterruptedException e) {}
2.
while (true)
try {
if (readLock.tryLock(5,MILLISECONDS))
return;
}catch (InterruptedException e) {}