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