文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:109日期: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. 请问是对象还是数组2. Android-studio导入.so库问题?3. thinkphp5.1学习时遇到session问题4. MYSQL 的 SELECT 语句中如何做到判断字段为空5. mysql - 我用SQL语句 更新 行的时候,发现全部 中文都被清空了,请问怎么解决?6. python - 如何使用websocket在网页上动态示实时数据的折线图?7. mysql数据库在更新某种情况的时候,会将null或者空字符串置成-1?8. css - 移动端字体适配问题9. html - css 英文段落换行,单词截断10. python - django 中的 views 输出编码问题
排行榜
