文章詳情頁
java - reentrantlock如何鎖住某個特定的對象?
瀏覽:73日期:2023-11-06 10:32:25
問題描述
如果我有一個長度為10個數(shù)組對象:
Object[] arr=new Object[10];
每個對象的訪問都是互斥的,但是多個對象之間訪問是可以并發(fā)的。那么使用synchonized可以這樣:
synchoronized(arr[i]){ //...}
我向問,如果使用 reentrantlock如何實現(xiàn)這樣的鎖?
備注:這樣的使用場景我是否需要同時建立10個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();}
需要加鎖時:
lockList[i].lock();try { ...} finally { lockList[i].unlock();}
標(biāo)簽:
java
上一條:編程 - java 為什么沒有靜態(tài)方法接口,有沒有哪門語言有靜態(tài)方法接口。下一條:數(shù)據(jù)庫 - 關(guān)于 JAVA spring 事務(wù)的配置 這樣是否正確
相關(guān)文章:
1. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?2. 大家好,請問在python腳本中怎么用virtualenv激活指定的環(huán)境?3. Matlab和Python編程相似嗎,有兩種都學(xué)過的人可以說說嗎4. 請教各位大佬,瀏覽器點 提交實例為什么沒有反應(yīng)5. javascript - Html5做移到端定位,獲取授權(quán)拒絕了怎么辦?6. 網(wǎng)頁爬蟲 - 用Python3的requests庫模擬登陸B(tài)ilibili總是提示驗證碼錯誤怎么辦?7. android - QQ物聯(lián),視頻通話8. javascript - 關(guān)于audio標(biāo)簽暫停的問題9. javascript - 微信小程序封裝定位問題(封裝異步并可能多次請求)10. javascript - Web微信聊天輸入框解決方案
排行榜

熱門標(biāo)簽