21.3 共享受限的资源

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对象是,



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值