文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:195日期: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. javascript - vuex store.watch()是什么意思2. java - JPA连接数据库,一段时间没有数据操作会关闭连接,再次访问就会抛出异常,如何解决?3. html - css权威指南的一处疑问(与盒子模型有关)4. javascript - service ssh restart报错5. angular.js - 可以给帮忙解释一下这是什么意思吗?6. javascript - 正则表达式 匹配第一次出现的字符7. java - mysql隔天自动删除数据8. node.js - vue-cli 创建项目的时候出现connect ECONNREFUSED 错误,请问如何解决?9. javascript - css 控制 div 始终水平垂直居中,这个div大小还不同10. debian - docker依赖的aufs-tools源码哪里可以找到啊?
排行榜

网公网安备