文章详情页
java - reentrantlock如何锁住某个特定的对象?
浏览:69日期: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 - node服务端渲染的困惑2. html5 - h5写的app用的webview,用手机浏览器打开不显示?3. javascript - 百度echarts series数据更新问题4. javascript - webpack --hot 热重载无效的问题5. php - 第三方支付平台在很短时间内多次异步通知,订单多次确认收款6. mysql - 一个表和多个表是多对多的关系,该怎么设计7. python - django 按日归档统计订单求解8. 我在导入模板资源时遇到无法显示的问题,请老师解答下9. Mysql && Redis 并发问题10. 请教一个python字符串处理的问题?
排行榜
