Что делает реализация ReentrantLock # tryLock (long, TimeUnit), когда пытается получить блокировку ? Предположим, поток A фактически владеет блокировкой myLock
, а поток B вызывает myLock.tryLock (10, SECONDS)
, поток B спит или ожидает?
Другими словами, было разница этих двух реализаций:
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) {}