文章詳情頁
java - reentrantlock如何鎖住某個(gè)特定的對象?
瀏覽:78日期: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 - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. java - spring boot 如何打包成asp.net core 那種獨(dú)立應(yīng)用?3. java - 在用戶不登錄的情況下,用戶如何添加保存到購物車?4. datetime - Python如何獲取當(dāng)前時(shí)間5. docker start -a dockername 老是卡住,什么情況?6. javascript - nginx反向代理靜態(tài)資源403錯(cuò)誤?7. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?8. 安全性測試 - nodejs中如何防m(xù)ySQL注入9. javascript - 關(guān)于apply()與call()的問題10. python - 調(diào)用api輸出頁面,會有標(biāo)簽出現(xiàn),請問如何清掉?
排行榜

熱門標(biāo)簽