文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:159日期: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. mysql,in中重复的记录也查出的方法2. mysql优化 - mysql 怎么查出近7天每日的数据?3. python - pymongo复制数据库中的表4. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题5. 为什么标题文字前面加的小色块标识不显示6. mysql - 求一个sql语句,比较简单。7. javascript - angular多项复选框取值问题8. nginx错误日志莫名有很多zhidao.baidu.com的连接这个是怎么回事?9. vue.js - 为什么我的vue项目上传到github不能预览?10. 是真的吗? Linux 下 mysql 使用 localhost 比 127.0.0.1 快
排行榜

网公网安备