线程安全问题:
多线程同时操作同一份资源的时候,有可能出现线程不安全问题
**作用:**处理线程安全:
同步锁 synchronized(已同步的)
同步方法: 效率较低,简单
同步静态方法
同步成员方法
同步块: synchronized( this || 类名.calss || 资源(成员属性) ){…}
注意:
1.锁一定要锁不变的内容 自定义类型对象地址
2.锁的范围太大,效率低,锁的范围太小锁不住
double check 双重检查 效率高,锁的范围小
锁静态方法,锁类的class对象都是锁类,锁住了这个类的所有对象
锁方法
锁this:锁住对象所有的资源(成员属性),如果只想锁住某一个资源,那就可以直接就锁资源
锁资源,效率较高
注意:一定要锁不变的资源内容
转载请标明出处:synchronized 同步
文章来源: https://blog.csdn.net/digua930126/article/details/92004810