文章詳情頁
java - reentrantlock如何鎖住某個特定的對象?
瀏覽:57日期: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. javascript - vue 移動端的input 數字輸入優化2. 數據庫 - mysql如何處理數據變化中的事務?3. java - ehcache緩存用的是虛擬機內存么?4. javascript - 有什么兼容性比較好的辦法來判斷瀏覽器窗口的類型?5. android - java 泛型不支持數組,那么RxJava的Map集合有什么方便的手段可以定義獲得一串共同父類集合數據呢?6. 為什么我ping不通我的docker容器呢???7. java - mongodb分片集群下,count和聚合統計問題8. 關于docker下的nginx壓力測試9. java - 靜態屬性中的賦值和靜態代碼塊中的賦值有什么區別?10. javascript - nidejs環境設置操作一直出現這種問題怎么解決?
排行榜
