文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:179日期: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 - 安装了babel,不起作用2. node.js - win10如何安装并使用babel?3. node.js - 在nodejs环境中如何配置webhook以实现hexo博客的自动更新?4. 前端 - date属性的input文本框在微信上会出现奇怪的边框?5. javascript - 关于用户登录和信息存储的问题6. html5 - 用h5本地存储是否安全?7. nginx bind failed8. node.js - 我是一个做前端的,求教如何学习vue,node等js引擎?9. css3 - 新版支付宝 账单页面滑动时月份栏被下一个月给顶上去是什么效果10. node.js - 使用babel后console.log中输出“33”时程序报错 如何解决
排行榜

网公网安备