并发编程

3.3线程安全

原子性

  1、synchronized 

    1.1修饰代码块: 大括号括起来的代码,作用于调用的对象

    1.2修饰方法: 整个方法,作用于调用的对象

    1.3修饰静态方法:整个静态方法,作用于所有对象

    1.4修饰类:括号括起来的部分,作用于所有对象(推荐用)

对比:      synchronized:不可中断锁,适合竞争不激烈,可读性好。

    Lock:可中断锁,多样化同步,竞争激烈时能维持常态

    Atomic:竞争激烈时能维持常态,比Lock性能好;只能同步一个值。

可见性 synchronized volatile

有序性 happens-before

4、安全发布对象

zhumiao
原文地址:https://www.cnblogs.com/zhumiao/p/11624561.html