happens-before及其示例
发布时间
阅读量:
阅读量
文章目录
-
- 开篇说明
- 简要概述
- 深入解析
- 结尾陈述
- 开篇说明
研究背景与动机阐述
要准确把握happens-before的概念,首先需要深入领会Java内存模型的内涵。对于Java内存模型,可以将其视为如下图所示的简化表述。

每个线程在执行任务时都会分配一个独立的存储空间,用于处理当前的操作。在此过程中,所涉及的变量会从主存中复制到各自的本地内存中,各线程仅在其本地内存中对变量进行操作。而主存中保存的数据则始终为最初未被修改的状态。因此,当多个线程同时对同一份数据进行处理时,可能会导致无法预料的结果出现。
简述
happens-before共包含8条规则
- 程序顺序规则 : 在同一进程中,按照控制流的执行顺序,先执行的操作会优先于后续操作发生。具体而言,这里的顺序并非单纯依据代码编写顺序,而是需要结合分支、循环等结构进行判断。
- 锁管理规则 : 对某个锁的释放操作会优先于之后对该锁的获取操作发生。此处需特别指出,所涉及的必须是同一个锁,“之后”指的是时间上的先后关系。
全部评论 (0)
还没有任何评论哟~
