Tom Xu

           

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

          ReentrantReadWriteLock的特性

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

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

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

          2.重復獲得鎖:讀線程可以重復的獲取鎖,盡管當前讀線程占用

          3.鎖降級:

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

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

          4.中斷鎖的獲取:讀鎖和寫鎖的獲取期間都允許被中斷

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

          6.可監測性:這個類支持操作是否對鎖的獲取還是競爭,只是為檢測系統狀態,而不是為了同步而設計的。


          顯式鎖(Lock)和隱式鎖(Synchronized)的不同點,括號注明隱式鎖與重復讀寫鎖(ReentrantReadWriteLock)的區別

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

          2.試圖獲得鎖時不能設置超時

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


          對ReentrantReadWriteLock類測試

             1.讀/寫操作的鎖多線程測試 : 單獨的讀操作和寫操作何以完成讀或寫的同步

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

             3.讀操作進程和寫操作進程間測試:不支持進程間的同步

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


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 喜德县| 土默特左旗| 杭锦后旗| 灵璧县| 蚌埠市| 黔西| 犍为县| 岳普湖县| 申扎县| 深州市| 蚌埠市| 南岸区| 四川省| 荣昌县| 开江县| 莒南县| 金寨县| 康保县| 甘德县| 壤塘县| 江源县| 嘉义县| 汕头市| 论坛| 潮州市| 澜沧| 阳新县| 陇南市| 商水县| 泽库县| 崇义县| 富顺县| 改则县| 东乌珠穆沁旗| 托克逊县| 阳城县| 观塘区| 中山市| 铜鼓县| 海城市| 宜春市|