1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

删除重复字“开发发者“

This commit is contained in:
Amos Chu 2022-09-22 08:36:40 +08:00 committed by GitHub
parent 8379c0bf77
commit 20d4644d23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -71,7 +71,7 @@ Java 是最早尝试提供内存模型的编程语言。由于早期内存模型
**为什么要遵守这些并发相关的原则和规范呢?** 这是因为并发编程下,像 CPU 多级缓存和指令重排这类设计可能会导致程序运行出现一些问题。就比如说我们上面提到的指令重排序就可能会让多线程程序的执行出现问题为此JMM 抽象了 happens-before 原则(后文会详细介绍到)来解决这个指令重排序问题。 **为什么要遵守这些并发相关的原则和规范呢?** 这是因为并发编程下,像 CPU 多级缓存和指令重排这类设计可能会导致程序运行出现一些问题。就比如说我们上面提到的指令重排序就可能会让多线程程序的执行出现问题为此JMM 抽象了 happens-before 原则(后文会详细介绍到)来解决这个指令重排序问题。
JMM 说白了就是定义了一些规范来解决这些问题,开发者可以利用这些规范更方便地开发多线程程序。对于 Java 开发者说,你不需要了解底层原理,直接使用并发相关的一些关键字和类(比如 `volatile``synchronized`、各种 `Lock`)即可开发出并发安全的程序。 JMM 说白了就是定义了一些规范来解决这些问题,开发者可以利用这些规范更方便地开发多线程程序。对于 Java 开发者说,你不需要了解底层原理,直接使用并发相关的一些关键字和类(比如 `volatile``synchronized`、各种 `Lock`)即可开发出并发安全的程序。
### JMM 是如何抽象线程和主内存之间的关系? ### JMM 是如何抽象线程和主内存之间的关系?