侧边栏壁纸
  • 累计撰写 39 篇文章
  • 累计创建 51 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

Java内存模型(JMM)

叶子
2024-07-09 / 0 评论 / 0 点赞 / 96 阅读 / 347 字

Java内存模型(JMM)

一、JMM基本概念

JMM(Java Memory model):是一套多线程读写共享数据时,对数据的可见性,有序性和原子性的规则(并发编程三要素)。

二、JMM三大特性

  • 原子性

    • 一个或多个操作,要么全部执行,要么全部不执行。
    • 处理器优化可能会造成原子性问题
  • 可见性

    • 只要有一个线程对共享变量的值做了修改,其他线程都将马上收到通知,立即获得最新的值。
    • 缓存一致性问题其实就是可见性问题
  • 有序性

    • 有序性可以总结为:在本线程内观察,所有的操作都是有序的;而在一个线程内观察另一个线程,所有操作都是无序的。处理器为了提高程序的运行效率,提高并行效率,可能会对代码进行优化。编译器认为,重排序后的代码执行效率更优。这样一来,代码的执行顺序就未必是编写代码时候的顺序了,在多线程的情况下就可能会出错。

    • 指令重排序会造成有序性问题

参考:https://blog.csdn.net/mrluo735/article/details/134989080

0

评论区