Java内存模型中的“执行跟踪”是什么意思

san*_*yok 5 java language-specifications java-memory-model jls

语言规范中专门针对 Java 内存模型 (JMM) 的部分(链接)多次提到“执行跟踪”。

例如从一开始:

给定一个程序和该程序的执行跟踪,存储器模型描述该执行跟踪是否是该程序的合法执行。Java 编程语言内存模型的工作原理是检查执行跟踪中的每次读取,并根据特定规则检查该读取观察到的写入是否有效。

但我找不到这个术语的任何描述/定义。

那么,JMM 中的“执行跟踪”到底是什么?它到底由什么组成?
最受欢迎的是对语言规范文本中特定位置的引用。

Mic*_*ael 3

你说得对; 这不是很清楚。他们也将其称为“程序跟踪”,并且简单地对其本身进行“跟踪”。

以下是引用:

例如,考虑表 17.4-A 中所示的示例程序跟踪。

表 17.4-A。

线程1 线程2
B=1; A = 2;
r2=A; r1=B;

因此,它只是每个线程的有序语句列表,表示语句执行方式的一种可能排列(因为语句可以重新排序)。跟踪在 JMM 内可能有效,也可能无效;它们被用来举例说明什么是合法的,什么是不合法的。