Java 多執行緒 - Lock介面,Condition介面 標準用法
阿新 • • 發佈:2020-09-20
Lock 介面
Lock 標準用法
在finally塊中釋放鎖,目的是保證在獲取到鎖之後,最終能夠被釋放。
不要將獲取鎖的過程寫在try塊中,因為如果在獲取鎖(自定義鎖的實現) 時發生了異常,異常丟擲的同時,也會導致鎖無故釋放。
Lock 常用API
public interface Lock { void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long var1, TimeUnit var3) throws InterruptedException; void unlock(); Condition newCondition(); }
注意:每個Lock可以生成多個Condition, 不同的執行緒可以等待在不同的Condition上。
Condition介面
任意一個Java物件,都擁有一組監視器方法(定義在java.lang.Object上), 主要包括wait()、wait(long timeout)、notify()以及notifyAll()方法,這些方法與synchronized同步關鍵字配合,可以實現等待/通知模式。Condition介面也