Skip to content

Commit 24d97d6

Browse files
committed
update
1 parent e490fac commit 24d97d6

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Java/并发.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,17 @@ ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, //
362362

363363
## JMM
364364

365-
Java内存模型:线程之间的共享变量存储在主内存里,每个线程都有自己私有的本地内存,本地内存保存了共享变量的副本,线程对变量的操作都在本地内存中进行,不能直接读写主内存中的变量。
365+
Java内存模型:线程之间的共享变量存储在主内存里,每个线程都有自己私有的本地内存,本地内存保存了共享变量的副本,线程对变量的操作都在本地内存中进行,不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方本地内存中的变量,线程之间值的传递都需要通过主内存来完成。
366366

367-
本地内存是JMM的一个抽象概念,并不真实存在,它包括缓存、写缓冲区、寄存器以及其他硬件和编译器优化。
367+
线程a和线程b要想进行数据交换一般要经过下面的步骤:
368+
369+
1. 线程a把本地内存a中的更新过的共享变量刷新到主内存中去。
370+
2. 线程b到主内存中去读取线程a刷新过的共享变量,然后复制一份到本地内存b中去。
368371

369372
![](https://gitee.com/tysondai/img/raw/master/image-20210909233258929.png)
370373

374+
本地内存是JMM的一个抽象概念,并不真实存在,它包括缓存、写缓冲区、寄存器以及其他硬件和编译器优化。
375+
371376
## 进程线程
372377

373378
进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。

0 commit comments

Comments
 (0)