文章詳情頁
java - reentrantlock如何鎖住某個特定的對象?
瀏覽:151日期: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. docker綁定了nginx端口 外部訪問不到2. javascript - 最近用echarts做統計圖時遇到兩個問題!!3. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?4. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題5. 前端 - html5 audio不能播放6. html - radio的使用時如何避免整個頁面只能選一個的情況7. nginx - ssl加密訪問證書不受信任8. redis sentinel怎么跑守護進程以及日志記錄位置的?9. 利用百度地圖API定位及附件商家信息服務10. git - webstorm窗口中左側列表的文件名顏色怎么修改
排行榜

網公網安備