java并发-内存模型happens before,as-if-serial

文章目录

    • 为什么要学习内存模型
    • 什么是as-if-serial
    • Happens-Before 规则
      • Java内存模型底层怎么实现的?
    • as-if-serial与happens-before的区别
    • 参考

为什么要学习内存模型

线程通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。

Java 的并发采用的是共享内存模型,Java 线程之间的通信总是隐式进行,整个通信过程对程序员完全透明。
线程同步是指程序用于控制不同线程之间操作发生相对顺序的机制。

Java 内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。

Java 内存模型, 屏蔽掉各种硬件和操作系统的内存访问差异,实现 Java 程序在各种平台下都能达到一致的内存访问效果。

Java 内存模型规范了 JVM 如何提供按需禁用缓存和编译优化的方法。具体来说,这些方法包括 volatile、synchronized 和 final 三个关键字,以及六项 Happens-Before 规则。

你可能感兴趣的:(Java并发编程,java并发编程)