Что делает ReentrantLock # tryLock (long, TimeUnit), когда пытается получить блокировку?

Что делает реализация 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) {}
8
задан Tudor 6 December 2011 в 10:44
поделиться