文章詳情頁(yè)
java - reentrantlock如何鎖住某個(gè)特定的對(duì)象?
瀏覽:154日期:2023-11-06 10:32:25
問題描述
如果我有一個(gè)長(zhǎng)度為10個(gè)數(shù)組對(duì)象:
Object[] arr=new Object[10];
每個(gè)對(duì)象的訪問都是互斥的,但是多個(gè)對(duì)象之間訪問是可以并發(fā)的。那么使用synchonized可以這樣:
synchoronized(arr[i]){ //...}
我向問,如果使用 reentrantlock如何實(shí)現(xiàn)這樣的鎖?
備注:這樣的使用場(chǎng)景我是否需要同時(shí)建立10個(gè)Lock數(shù)組? Lock[] lockList=new ReentrantLock[10]
if(lockList[i].trylock())[ //}
這樣?
問題解答
回答1:初始化鎖:
Lock[] lockList = new ReentrantLock[10];for (int i = 0; i < 10; i ++) { lockList[i] = new ReentrantLock();}
需要加鎖時(shí):
lockList[i].lock();try { ...} finally { lockList[i].unlock();}
標(biāo)簽:
java
上一條:編程 - java 為什么沒有靜態(tài)方法接口,有沒有哪門語(yǔ)言有靜態(tài)方法接口。下一條:數(shù)據(jù)庫(kù) - 關(guān)于 JAVA spring 事務(wù)的配置 這樣是否正確
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - immutable配合react提升性能?3. Apache 已經(jīng)把網(wǎng)站根目錄的改為allow from all了,但是服務(wù)器還是不能訪問?4. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?5. 實(shí)現(xiàn)bing搜索工具urlAPI提交6. vue.js - Vue 如何像Angular.js watch 一樣監(jiān)聽數(shù)據(jù)變化7. javascript - nodejs關(guān)于進(jìn)程間發(fā)送句柄的一點(diǎn)疑問8. phpstudy8.1支持win11系統(tǒng)嗎?9. 如何解決Centos下Docker服務(wù)啟動(dòng)無(wú)響應(yīng),且輸入docker命令無(wú)響應(yīng)?10. css - 寫頁(yè)面遇到個(gè)布局問題,求大佬們幫解答,在線等,急!~
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備