1.首先创建一个maven项目
2.引入jcstress-core依赖
<dependency><groupId>org.openjdk.jcstress</groupId><artifactId>jcstress-core</artifactId><version>0.14</version></dependency>
3.准备测试代码
import org.openjdk.jcstress.annotations.*;
import org.openjdk.jcstress.infra.results.I_Result;/*** @author:Ronin* @since:2021/12/2* @email:1817937322@qq.com*/
@JCStressTest
@State
@Outcome(id = {"1", "4"}, expect = Expect.ACCEPTABLE, desc = "这是期待的结果")
@Outcome(id = "0", expect = Expect.ACCEPTABLE_INTERESTING, desc = "这是不期待的结果")
public class VisibilityTest {/*** 结果有三种可能 4, 1,0(这个0是因为指令重排)*/private int a = 0;private boolean flag = false;@Actorpublic void method(I_Result result) {if (flag) {result.r1 = a * 2;} else {result.r1 = 1;}}@Actorpublic void method2(I_Result result) {a = 2; //这个地方有可能会发生指令重排,也就是a=2和flag=true互换flag = true;}}
4.配置

5.运行
之 后 会 在 根 目 录 下 生 成 两 个 文 件 , 打 开 i n d e x . h t m l 之后会在根目录下生成两个文件,打开index.html 之后会在根目录下生成两个文件,打开index.html


成功!


















