正确性
对于对象状态的访问操作的管理
概念
产生条件
常见类型
先检查-后执行
举例
读取-修改-写入
加锁
内置锁
同步代码块(synchronized block)
锁的对象的引用(用什么作为锁)
锁所保护的代码块
方式
每个线程在进入同步代码块之前会自动获得所,并在结束之后自动释放锁
特性
可重入
可以免于再申请其他的锁,可以直接拿来用
如何加锁?
被多线程同时访问的可变状态变量的代码(路径)应该由同一个锁且只有一个锁进行保护
混用两种不同的同步机制并不一定会带来好处,例如自己封装的同步代码中又使用jdk并发包底下的线程安全类可能也不是最优解
当一些执行时间较长或者无法立马完成的操作,一定不要持有锁
Update your browser to view this website correctly. Update my browser now
×