请你谈谈对volatile的理解

  1. 所在包:java.util.concurrent`---> `AtomicInteger`  `Lock` `ReadWriteLock
  2. volatile是java虚拟机提供的轻量级的同步机制
  3.  作用:保证可见性、不保证原子性、禁止指令重排
    原子性:不可分割、完整性,即某个线程正在做某个具体业务时,中间不可以被加塞或者被分割,需要整体完整,要么同时成功,要么同时失败
    
    验证示例(变量添加volatile关键字,方法不添加synchronized)
    可见性:当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看到修改的值
    指令重排:有序性:在计算机执行程序时,为了提高性能,编译器和处理器常常会对指令做重排

转载于:https://my.oschina.net/u/3915790/blog/3067359

你可能感兴趣的:(请你谈谈对volatile的理解)