樓主的這個(gè)列子中由于CacheData有且只有一個(gè)線程能成功的修改數(shù)據(jù),其他線程讀到的都是這一個(gè)數(shù)據(jù),所以不能展示出在獲得寫鎖后將readWriteLock.readLock().lock()與readWriteLock.writeLock().unlock()進(jìn)行互換所產(chǎn)生的問題罩句,我覺得這個(gè)列子意圖是多個(gè)線程各自修改數(shù)據(jù),且修改后的數(shù)據(jù)對(duì)其他線程可見而且在線程內(nèi)使用數(shù)據(jù)時(shí)保證一致
cocurrent包中的讀寫鎖降級(jí)問題聲明:本文不討論讀寫鎖的具體實(shí)現(xiàn)养交,只對(duì)其中的鎖降級(jí)做一定的收錄 代碼片段 代碼分析 寫一個(gè)Main函數(shù)去調(diào)用processData()抓狭,代碼如下: 啟動(dòng)了兩個(gè)線程去調(diào)用Cac...