共計 694 個字符,預計需要花費 2 分鐘才能閱讀完成。
在 Java 中,可以使用關鍵字 synchronized
來實現同步鎖。具體有以下幾種方式可以使用同步鎖:
- 實例級別的同步鎖:使用
synchronized
關鍵字修飾實例方法,該方法的同步鎖是當前實例對象。
public synchronized void method(){// 需要同步的代碼
}
- 類級別的同步鎖:使用
synchronized
關鍵字修飾靜態方法,該方法的同步鎖是當前類的 Class 對象。
public static synchronized void method(){// 需要同步的代碼
}
- 代碼塊級別的同步鎖:使用
synchronized
關鍵字修飾代碼塊,可以指定任意對象作為同步鎖。
public void method(){synchronized (obj) {// obj 為任意對象
// 需要同步的代碼
}
}
需要注意的是,同步鎖只能保證同一時間只有一個線程執行同步代碼塊,其他線程將被阻塞,等待鎖釋放。同步鎖的加鎖和釋放鎖是自動進行的,不需要手動控制。
同時,還可以使用 ReentrantLock
類來實現同步鎖,它提供了更多靈活的同步鎖控制方式,如可重入鎖、可中斷鎖、公平鎖等。使用 ReentrantLock
需要手動進行加鎖和釋放鎖的操作。
import java.util.concurrent.locks.ReentrantLock;
private ReentrantLock lock = new ReentrantLock();
public void method(){lock.lock(); // 加鎖
try {// 需要同步的代碼
} finally {lock.unlock(); // 釋放鎖
}
}
丸趣 TV 網 – 提供最優質的資源集合!
正文完
發表至: Java
2023-12-16