文章詳情頁
java - reentrantlock如何鎖住某個特定的對象?
瀏覽:66日期: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. angular.js使用$resource服務把數據存入mongodb的問題。2. 更新mysql中被別人鎖定的行, 能不能快速失敗直接報錯, 而不是一直等待3. mysql - 記得以前在哪里看過一個估算時間的網站4. python運行后沒有任何反饋要怎么排查5. javascript - h5 video層級太高導致浮在div上面,如何解決?6. mysql刪除一個空數據庫報錯Table storage engine for ’proc’ doe7. javascript - Ajax加載Json時,移動端頁面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?8. python小白 想做一個能夠計算圓周率的代碼,不知道怎么寫9. javascript - 如何獲取未來元素的父元素在頁面中所有相同元素中是第幾個?10. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?
排行榜
