1. 程式人生 > 實用技巧 >Java 多執行緒 - Lock介面,Condition介面 標準用法

Java 多執行緒 - Lock介面,Condition介面 標準用法

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介面也