文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:148日期: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. celery+redis 怎么看redis里面的内容2. 为什么redis中incr一个“0” 会报错?3. angular.js - angular ng-focus ng-blur 存在问题4. javascript - 最近用echarts做统计图时遇到两个问题!!5. android - TextInputLayout的空白显示问题6. android - 优酷的安卓及苹果app还在使用flash技术吗?7. android - 百度地图拖拽图标后原来位置的图标还在?8. 微信$data =file_get_contents(’php://input’)取不到数据,抓包9. css内联样式的style10. css - input中transition 设置background-color过渡,chrome浏览器页面初始化渲染会有过度效果
排行榜

网公网安备