文章詳情頁
java - reentrantlock如何鎖住某個(gè)特定的對象?
瀏覽:68日期:2023-11-06 10:32:25
問題描述
如果我有一個(gè)長度為10個(gè)數(shù)組對象:
Object[] arr=new Object[10];
每個(gè)對象的訪問都是互斥的,但是多個(gè)對象之間訪問是可以并發(fā)的。那么使用synchonized可以這樣:
synchoronized(arr[i]){ //...}
我向問,如果使用 reentrantlock如何實(shí)現(xiàn)這樣的鎖?
備注:這樣的使用場景我是否需要同時(shí)建立10個(gè)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();}
需要加鎖時(shí):
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 gitlab 如何git clone?2. docker鏡像push報(bào)錯(cuò)3. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。4. docker-machine添加一個(gè)已有的docker主機(jī)問題5. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!6. 關(guān)于docker下的nginx壓力測試7. docker-compose中volumes的問題8. docker不顯示端口映射呢?9. angular.js - angularJs ngRoute怎么在路由傳遞空字符串及用ng-switch取得10. docker - 如何修改運(yùn)行中容器的配置
排行榜

熱門標(biāo)簽