volatile关键字

转载 https://blog.csdn.net/u012723673/article/details/80682208

特性:

  1. 保证可见性,不保证原子性
  2. 禁止指令重排
    • 重排序在单线程下一定能保证结果的正确性,但是在多线程环境下,可能发生重排序,影响结果
    • 即执行到volatile变量时,其前面的所有语句都执行完,后面所有语句都未执行。且前面语句的结果对volatile变量及其后面语句可见。

单例模式为什么要加volatile

  • 单例模式特别常见,比如在aop中,从beanFactroy中获取advice时
    AbstractBeanFactoryPointcutAdvisor#getAdvice、MethodSecurityMetadataSourceAdvisor#getAdvice

你可能感兴趣的:(volatile关键字)