• 技术文章 >java >java基础

    Java内存模型的并发处理

    小妮浅浅小妮浅浅2021-04-02 14:39:53原创2269

    1、工作内存数据一致性

    使用主内存时,每个线程操作数据都会保存共享变量的副本。如果多个线程操作任务涉及同一共享变量,则将导致它们各自具有不一致的共享变量副本。在出现这种情况时,数据同步的主存将由谁来复制数据呢?

    具体介绍了Java内存模型,主要是通过一系列数据同步协议和规则来保证数据的一致性。

    2、指令重排序的优化

    在Java中,重新排序通常是编译器或运行环境重新排序指令以优化程序性能的方法。它被分成两类:编译期重新排序和运行期重新排序,它们分别对应于编译期和运行期环境。

    同样,指令重排序不是随机的,它需要满足两个条件:

    (1)不能在单线程环境中更改程序运行的结果。

    立即编译器(和处理器)需要确保程序符合as-if-serial特性。一般而言,在单线程情况下,给程序一个连续执行的幻象。即重新排序的执行结果必须与连续执行的结果一致。

    (2)数据依赖性不允许重新排序。

    以上就是Java内存模型的并发处理,希望对大家有所帮助。更多Java学习指路:Java基础

    专题推荐:java 内存模型
    上一篇:java内存模型的组成 下一篇:Java内存交互如何操作

    相关文章推荐

    • python如何控制内存• mysql内存不足怎么解决• python如何获取系统内存占用信息• 按行读取内存不够?如何用python解决?• 内存占用如何python3中的代码解决?• python缩减exe文件内存• java数组内存的探究• java中内存模型是什么?有什么用?• java数组中如何对内存进行回收?• java ThreadLocal内存泄漏的解决• java中JVM运行时的内存整理• java对象的创建及内存布局• Java内存交互的规则• java内存结构的组成• java内存模型的组成

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网