21.3 共享受限的资源
2016-06-01 20:46
218 查看
21.3.1 不正确的访问
当有两个或更多的任务竞争响应某个条件,产生冲突或不一致结果
21.3.2 解决共享资源竞争
java提供了关键字synchronize来保护代码片段,当任务要执行被synchronize关键字保护的代码片段的时候,它将检查锁是否可用,然后获取锁,执行代码,释放锁。
当在对象上调用器任意synchronize方法时候,此对象都被加锁,这时对象上的其他synchronize方法只有等前一个方法调用完毕并释放锁之后才能被调用。
使用并发是,将域设置为private是非常重要的,否则,synchronize关键字就不能防止其他任务直接访问域,就会产生冲突。
一个任务可以多次获得对象的锁。
2.解决的方法是显示的Lock对象
private Lock lock=new ReentranLock();
lock.lock();
lock.unlock();
在lock与unlock之间创建了临界资源,使用lock对象是,
当有两个或更多的任务竞争响应某个条件,产生冲突或不一致结果
21.3.2 解决共享资源竞争
java提供了关键字synchronize来保护代码片段,当任务要执行被synchronize关键字保护的代码片段的时候,它将检查锁是否可用,然后获取锁,执行代码,释放锁。
当在对象上调用器任意synchronize方法时候,此对象都被加锁,这时对象上的其他synchronize方法只有等前一个方法调用完毕并释放锁之后才能被调用。
使用并发是,将域设置为private是非常重要的,否则,synchronize关键字就不能防止其他任务直接访问域,就会产生冲突。
一个任务可以多次获得对象的锁。
2.解决的方法是显示的Lock对象
private Lock lock=new ReentranLock();
lock.lock();
lock.unlock();
在lock与unlock之间创建了临界资源,使用lock对象是,
相关文章推荐
- mybatis in的使用问题
- 渲染流水线
- 如何在流程管理软件中加强业务数据串联
- GROUP_CONCAT()多条数据.拼接字符串 最大长度1024
- PAT (Advanced Level) 1057. Stack (30)
- 堆排序的代码实现与思考
- JSON与XML的区别比较
- Django Model实例
- Android 控件绑定事件的几种方法
- mysql的插入数据和查询
- Android的两种数据解析
- XListView上拉加载下拉刷新
- spring ioc原理
- 基于R语言的模型组合
- 1027. Colors in Mars (20)
- 进程—僵尸进程与孤儿进程
- 不使用第三个变量来交换连个数据
- Android版日语学习应用的逆向分析
- Codeforces418D Big Problems for Organizers
- iOS——UICollectionView