Я заметил, что следующий блок кода:
final Lock s = new ReentrantLock();
for(int i = 0 ; i < 1000 ; i++)
{
s.lock();
System.out.println(i+" :" +s.tryLock()+" ");
}
Отпечатки:
0 :true
1 :true
2 :true
3 :true
...
Это странно - я бы ожидал, что последовательные блокировки потерпят неудачу, поскольку s никогда не разблокируется.
Здесь есть какие-нибудь происшествия?