Tom Xu

           

          可重復(fù)性讀寫鎖 顯式鎖 隱式鎖 線程進(jìn)程同步讀寫同步(ReentrantReadWriteLock Lock Synchronized )

          ReentrantReadWriteLock的特性

          1.公平性和非公平性獲取鎖:

              支持按照公平的原則獲取鎖,即讀寫線程按照最長等待時(shí)間分配鎖

              若構(gòu)造為非公平性的,則按照先到先得的順序,但是有讀線程想獲取鎖時(shí),該順序被打破

          2.重復(fù)獲得鎖:讀線程可以重復(fù)的獲取鎖,盡管當(dāng)前讀線程占用

          3.鎖降級:

              可以將write lock 的等級降為 read lock ,順序是:先獲得WriteLock再獲得ReadLock,然后釋放WriteLock,這時(shí)候線程將保持Readlock的持 有。

             反過來ReadLock想要升級為WriteLock則不可能

          4.中斷鎖的獲?。鹤x鎖和寫鎖的獲取期間都允許被中斷

          5.Condition 類的支持:該支持僅僅就寫操作而言,若readLock(0.newCondition() 將會(huì)throws UnsupprotedoperationException

          6.可監(jiān)測性:這個(gè)類支持操作是否對鎖的獲取還是競爭,只是為檢測系統(tǒng)狀態(tài),而不是為了同步而設(shè)計(jì)的。


          顯式鎖(Lock)和隱式鎖(Synchronized)的不同點(diǎn),括號(hào)注明隱式鎖與重復(fù)讀寫鎖(ReentrantReadWriteLock)的區(qū)別

          1.不能主動(dòng)中斷正在試圖獲得鎖的線程  (顯式寫操作鎖可以主動(dòng)的掛起讀操作鎖,進(jìn)行寫操作)

          2.試圖獲得鎖時(shí)不能設(shè)置超時(shí)

          3.在對象內(nèi)部鎖只有一個(gè)并且內(nèi)部鎖只有一個(gè)單一的條件,可能不夠用(顯示鎖可以有多個(gè),不斷重復(fù)的對讀寫操作加鎖)


          對ReentrantReadWriteLock類測試

             1.讀/寫操作的鎖多線程測試 : 單獨(dú)的讀操作和寫操作何以完成讀或?qū)懙耐?/p>

             2.讀操作所和寫操作鎖多線程測試 :  能同步 (必需操作類中將 ReentrantReadWriteLock聲明為static的成員變量)

             3.讀操作進(jìn)程和寫操作進(jìn)程間測試:不支持進(jìn)程間的同步

          posted on 2012-11-04 22:37 Tom Xu 閱讀(1854) 評論(0)  編輯  收藏 所屬分類: java correlation


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 白朗县| 边坝县| 沁水县| 通河县| 武邑县| 睢宁县| 昆明市| 平遥县| 雅江县| 本溪| 南昌县| 甘泉县| 竹北市| 襄垣县| 萝北县| 兴安盟| 吉木萨尔县| 双峰县| 云梦县| 元谋县| 屏东县| 苏尼特左旗| 乐清市| 神池县| 巴马| 西安市| 湖北省| 左权县| 金沙县| 珲春市| 凉城县| 钟山县| 大余县| 德令哈市| 定陶县| 林芝县| 清镇市| 称多县| 迁西县| 稷山县| 微博|