使用 Google Guava Striped 實現基於 Key 的併發鎖

寫 Java 代碼至今,在應對可能衝突的共享資源操作時會盡量用 JDK 1.5 開始引入的併發鎖(如 Lock 的各類實現類, ReentrantLock 等) 進行鎖定,而不是原來的 synchronized 關鍵字強硬低性能鎖。

這裏是應用 JDK 1.5  的 Lock 的基本操作步驟

private Lock lock = new ReentrantLock();

private void operate() {
    // 安全操作 ....
    lock.lock();
    try {
        // 對共享資源的操作 ...
    } finally {
        lock.unlock();
    }
}

如此,operate() 就是一個線程安全的方法,任何對它的調用都安排到了一個隊列裏等着。但有時候上鎖需要考慮更細的粒度,下面是一個演示案例,引出第一個問題

閱讀全文 >>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章