文章詳情頁
java - reentrantlock如何鎖住某個特定的對象?
瀏覽:150日期:2023-11-06 10:32:25
問題描述
如果我有一個長度為10個數組對象:
Object[] arr=new Object[10];
每個對象的訪問都是互斥的,但是多個對象之間訪問是可以并發的。那么使用synchonized可以這樣:
synchoronized(arr[i]){ //...}
我向問,如果使用 reentrantlock如何實現這樣的鎖?
備注:這樣的使用場景我是否需要同時建立10個Lock數組? 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();}
標簽:
java
相關文章:
1. html5和Flash對抗是什么情況?2. html5 - datatables 加載不出來數據。3. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????4. 利用IPMI遠程安裝centos報錯!5. node.js - mongodb查找子對象的名稱為某個值的對象的方法6. 運行python程序時出現“應用程序發生異常”的內存錯誤?7. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]8. javascript - QQ第三方登錄的問題9. javascript - 在 model里定義的 引用表模型時,model為undefined。10. spring-mvc - spring-session-redis HttpSessionListener失效
排行榜

網公網安備