美文网首页
volatile和synchronized底层原理

volatile和synchronized底层原理

作者: 我还是老油条 | 来源:发表于2019-04-27 18:23 被阅读0次

    先来看 JMM

    java  memory model  java 内存模型

    主要围绕:原子性,可见性,有序性。

    A  B  线程交互 必须经过主内存,这就存在可见性问题,volatile就是解决可见性的

    volatile会强制将数据刷新到主内存,并是工作内存失效。

    1.对于生明了volatile的变量,进行写操作的时候,JVM会向处理器发送一条lock前缀的指令,

    会把这个变量所有缓存行的数据刷新到主内存,

    2.多处理器会保证缓存一致性,使工作内存失效,重新读取主内存内容。

    synchronized:可重入锁,互斥性,可见性,

    找到class文件 javap -v  *.class

    synchronized  底层使用的 moitor机制,进入对象之前 加锁,出来解锁。异常情况自动解锁(出队列)

    相关文章

      网友评论

          本文标题:volatile和synchronized底层原理

          本文链接:https://www.haomeiwen.com/subject/jigknqtx.html