文章詳情頁(yè)
java - reentrantlock如何鎖住某個(gè)特定的對(duì)象?
瀏覽:91日期:2023-11-06 10:32:25
問題描述
如果我有一個(gè)長(zhǎng)度為10個(gè)數(shù)組對(duì)象:
Object[] arr=new Object[10];
每個(gè)對(duì)象的訪問都是互斥的,但是多個(gè)對(duì)象之間訪問是可以并發(fā)的。那么使用synchonized可以這樣:
synchoronized(arr[i]){ //...}
我向問,如果使用 reentrantlock如何實(shí)現(xiàn)這樣的鎖?
備注:這樣的使用場(chǎng)景我是否需要同時(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ù)庫(kù) - 關(guān)于 JAVA spring 事務(wù)的配置 這樣是否正確
相關(guān)文章:
1. docker鏡像push報(bào)錯(cuò)2. dockerfile - [docker build image失敗- npm install]3. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題4. angular.js - angular內(nèi)容過長(zhǎng)展開收起效果5. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!6. docker-machine添加一個(gè)已有的docker主機(jī)問題7. 關(guān)于docker下的nginx壓力測(cè)試8. python - Django表單Form.save()問題9. python小白基礎(chǔ)問題 關(guān)于while循環(huán)10. python - pyqt多線程問題實(shí)在不是很明白。。求解。。
排行榜

熱門標(biāo)簽