Java内存模型在多线程高并发中的应用原理是什么?

2026-05-06 01:540阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2450个文字,预计阅读时间需要10分钟。

Java内存模型在多线程高并发中的应用原理是什么?

1.+ 概述Java内存模型即Java Memory Model,简称JMM。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系,线程间的共享变量存储在主内存中,每个线程都有自己的工作内存。

1. 概述

Java 内存模型即 Java Memory Model,简称 JMM。从抽象的角度来看,JMM 定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存中,每个线程都有一个私有的工作内存,工作内存中存储了该线程以读/写共享变量的副本。工作内存是 JMM 的一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。

Java内存模型是跟cpu缓存模型是类似的,基于cpu缓存模型来建立的Java内存模型,只不过Java内存模型是标准化的,屏蔽掉底层不同的计算机的区别。

2. Java内存模型带来的问题

Java内存模型规定了线程对主内存的操作具备原子性,包括以下8个操作:
lock:主内存,标识变量为线程独占;
unlock:主内存,解锁线程独占变量;
read:主内存,读取内存到线程缓存(工作内存);
load:工作内存,read后的值放入线程本地变量副本;
use:工作内存,传值给执行引擎;
assign:工作内存,执行引擎结果赋值给线程本地变量;
store:工作内存,存值到主内存给write备用;
write:主内存,写变量值。

阅读全文

本文共计2450个文字,预计阅读时间需要10分钟。

Java内存模型在多线程高并发中的应用原理是什么?

1.+ 概述Java内存模型即Java Memory Model,简称JMM。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系,线程间的共享变量存储在主内存中,每个线程都有自己的工作内存。

1. 概述

Java 内存模型即 Java Memory Model,简称 JMM。从抽象的角度来看,JMM 定义了线程和主内存之间的抽象关系,线程之间的共享变量存储在主内存中,每个线程都有一个私有的工作内存,工作内存中存储了该线程以读/写共享变量的副本。工作内存是 JMM 的一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。

Java内存模型是跟cpu缓存模型是类似的,基于cpu缓存模型来建立的Java内存模型,只不过Java内存模型是标准化的,屏蔽掉底层不同的计算机的区别。

2. Java内存模型带来的问题

Java内存模型规定了线程对主内存的操作具备原子性,包括以下8个操作:
lock:主内存,标识变量为线程独占;
unlock:主内存,解锁线程独占变量;
read:主内存,读取内存到线程缓存(工作内存);
load:工作内存,read后的值放入线程本地变量副本;
use:工作内存,传值给执行引擎;
assign:工作内存,执行引擎结果赋值给线程本地变量;
store:工作内存,存值到主内存给write备用;
write:主内存,写变量值。

阅读全文