Lock鎖,ReentrantLock,lockInterruptibly()方法,tryLock()方法
阿新 • • 發佈:2021-08-24
1.在 JDK5 中 增 加 了 Lock 鎖 接 口 , 有 ReentrantLock 實 現 類,ReentrantLock 鎖稱為可重入鎖, 它功能比 synchronized 多.鎖的可重入是指,當一個執行緒獲得一個物件鎖後,再次請求該物件 鎖時是可以獲得該物件的鎖的
2.ReentrantLock的基本使用,呼叫 lock()方法獲得鎖, 呼叫 unlock()釋放鎖,ReentrantLock 鎖具有可重入性
3.lockInterruptibly()方法:如果當前執行緒未被中斷則獲得鎖, 如果當前執行緒被中斷則出現異常。
4.tryLock(long time, TimeUnit unit) 的作用在給定等待時長內鎖沒有 被另外的執行緒持有,並且當前執行緒也沒有被中斷,則獲得該鎖.通過該 方法可以實現鎖物件的限時等待.
5.tryLock()僅在呼叫時鎖定未被其他執行緒持有的鎖,如果呼叫方法時,鎖物件對其他執行緒持有,則放棄.呼叫方法嘗試獲得,如果該鎖沒有 被其他執行緒佔用則返回 true 表示鎖定成功; 如果鎖被其他執行緒佔用則返回 false,不等待.