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

  1. Lock類(lèi)

  2. Lock類(lèi)其他功能

  3. Condition類(lèi)

  4. Condition類(lèi)其他功能

  5. 讀寫(xiě)鎖

Lock類(lèi)

Lock類(lèi)實(shí)際上是一個(gè)接口,我們?cè)趯?shí)例化的時(shí)候?qū)嶋H上是實(shí)例化實(shí)現(xiàn)了該接口的類(lèi)Lock lock = new ReentrantLock();。用synchronized的時(shí)候,synchronized可以修飾方法,或者對(duì)一段代碼塊進(jìn)行同步處理。
前面講過(guò),針對(duì)需要同步處理的代碼設(shè)置對(duì)象監(jiān)視器,比整個(gè)方法用synchronized修飾要好。Lock類(lèi)的用法也是這樣,通過(guò)Lock對(duì)象lock,用lock.lock來(lái)加鎖,用

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式