并发JavaJava 并发
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/28 21:25
答案
happens-before原则主要就是描述了两个操作之间的内存可见性。它主要是为了实现程序员和编译器、处理器之间的平衡。因为程序员追求的是易理解的强内存模型,只需要遵循既定的规则去进行编程就可以了,而编译器和处理器追求的是约束更少的弱内存模型,他们的目的是优化性能,最大化性能。因此,happens-before原则的思想就是,尽量减少编译器和处理器的约束,对于不会影响程序结果的重排序,就允许编译器和处理器为了提升性能而去进行重排序,而对于会影响结果的重排序,JMM就要禁止。 happens-before原则定义了如果一个操作happens-before于另一个操作,那么第一个操作的结果是对第二个操作可见的。并且第一个操作的执行顺序要在第二个操作之前。
相关题目(5)
Java 并发并发JavaJava 并发锁
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
有哪些支持并发的集合?共源 1
Java 并发并发JavaJava 并发
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(并发).md
knowledge_noteQuestion 28: 什么是 happens-before 原则?
Source answer: happens-before原则主要就是描述了两个操作之间的内存可见性。它主要是为了实现程序员和编译器、处理器之间的平衡。因为程序员追求的是易理解的强内存模型,只需要遵循既定的规则去进行编程就可以了,而编译器和处理器追求的是约束更少的弱内存模型,他们的目的是优化性能,最大化性能。因此,happens-before原则的思想就是,尽量减少编译器和处理器的约束,对于不会影响程序结果的重排序,就允许编译器和处理器为了提升性能而去进行重排序,而对于会影响结果的重排序,JMM就要禁止。 happens-before原则定义了如果一个操作happens-before于另一个操作,那么第一个操作的结果是对第二个操作可见的。并且第一个操作的执行顺序要在第二个操作之前。
Reviewed answer: happens-before 用于描述两个操作之间的可见性和有序性关系。如果操作 A happens-before 操作 B,那么 A 的结果对 B 可见,且 A 在执行顺序上先于 B。它在可理解性与底层优化之间做平衡,只禁止会影响程序正确性的重排序。