Допустим, у меня есть три потока: T1, T2, T3
, блокировка lock
и некоторое условие cond
на ресурсе Resource
.
T1
получает блокировку и теперь делает cond.await()
из-за какого-то условия, а T2
получает эту блокировку и делает cond.signal()
, а затем переходит к lock.unlock()
, но некоторое время T3
также пытался чтобы получить блокировку, чтобы она была на линии lock.lock()
, что именно происходит?
Восстанавливает ли T2
блокировку или T3
получает ее, или это случайно, на основе шойдлера?