1.概述
Lock鎖,使用時手動取得鎖定和釋放鎖,比synchronized更靈活;可中斷的取得鎖定;逾時取得鎖定。
Lock 鎖的基本用法, l.lock()方法進行上鎖, l.unlock()方法進行解鎖,如下所示。
Lock l = ...; l.lock(); // 上锁 try { // access the resource protected by this lock } finally { l.unlock(); // 解锁 }
2.實例
採用Lock,必須主動去釋放鎖定,並且在發生例外狀況時,不會自動釋放鎖定。因此一般來說,使用Lock必須在try{}catch{}塊中進行,並且將釋放鎖的操作放在finally塊中進行,以確保鎖一定被釋放,防止死鎖的發生。通常使用Lock來進行同步的話,是以下面這種形式去使用的:
Lock lock = ...; lock.lock(); try{ //处理任务 }catch(Exception ex){ }finally{ lock.unlock(); //释放锁 }
以上是Java中使用Lock實作同步的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!