文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:118日期: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 - js中递归与for循环同时发生的时候,代码的执行顺序是怎样的?2. sql concat的报错3. 默认输出类型为json,如何输出html4. html5 - webapp中将录下的视频,照片上传服务器之前,需要如何处理(转变格式?),降低对服务器的压力?5. html5和Flash对抗是什么情况?6. mysql 5.7 对json的支持意味着数组?7. nginx - 使用wordpress搭建博客,怎么实现真实服务器使用HTTP,然后使用UPYUN的HTTPS加密?8. mysql - sql数据还原9. javascript - 请问div是个链接,鼠标移上去能出现一个div,比如查看更多按钮,怎么做?10. javascript - 求帮助 , ATOM不显示界面!!!!
排行榜

网公网安备