您的位置:首页 > 其它

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对象是,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: