之前已經(jīng)說道,JVM提供了synchronized關鍵字來實現(xiàn)對變量的同步訪問以及用wait和notify來實現(xiàn)線程間通信。在jdk1.5以后,JAVA提供了Lock類來實現(xiàn)和synchronized一樣的功能,并且還提供了Condition來顯示線程間通信。
Lock類是Java類來提供的功能,豐富的api使得Lock類的同步功能比synchronized的同步更強大。本文章的所有代碼均在Lock類例子的代碼
本文主要介紹一下內容:

  1. Lock類

  2. Lock類其他功能

  3. Condition類

  4. Condition類其他功能

  5. 讀寫鎖

Lock類

Lock類實際上是一個接口,我們在實例化的時候實際上是實例化實現(xiàn)了該接口的類Lock lock = new ReentrantLock();。用synchronized的時候,synchronized可以修飾方法,或者對一段代碼塊進行同步處理。
前面講過,針對需要同步處理的代碼設置對象監(jiān)視器,比整個方法用synchronized修飾要好。Lock類的用法也是這樣,通過Lock對象lock,用lock.lock來加鎖,用

網(wǎng)友評論