保证线程安全的三个方面

1.原子性:保证同一时刻该资源只能有一个线程访问修改,其他线程阻塞等待,例如Atomic包,锁

  原子性: 互斥访问,Atomic包,CAS算法,Synchronized,Lock

2.可见性:一个线程对于主内存的数据操作对于其他线程是可见的

  可见性:synchronized,volatile

3.有序性:一个线程观察其他线程中指令执行顺序,由于指令重排序存在,观察结果一般杂乱无序

  顺序性:happends-before

标签: 线程、atomic、happends、synchronized、杂乱无序、面试
  • 回复
隐藏