3.3线程安全
原子性
1、synchronized
1.1修饰代码块: 大括号括起来的代码,作用于调用的对象
1.2修饰方法: 整个方法,作用于调用的对象
1.3修饰静态方法:整个静态方法,作用于所有对象
1.4修饰类:括号括起来的部分,作用于所有对象(推荐用)
对比: synchronized:不可中断锁,适合竞争不激烈,可读性好。
Lock:可中断锁,多样化同步,竞争激烈时能维持常态
Atomic:竞争激烈时能维持常态,比Lock性能好;只能同步一个值。
可见性 synchronized volatile
有序性 happens-before
4、安全发布对象