0
点赞
收藏
分享

微信扫一扫

【多线程&高并发】jcstress并发测试工具使用教程详解


1.首先创建一个maven项目

【多线程&高并发】jcstress并发测试工具使用教程详解_html

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;
@Actor
public void method(I_Result result) {
if (flag) {
result.r1 = a * 2;
} else {
result.r1 = 1;
}
}

@Actor
public void method2(I_Result result) {
a = 2; //这个地方有可能会发生指令重排,也就是a=2和flag=true互换
flag = true;
}

}

4.配置

【多线程&高并发】jcstress并发测试工具使用教程详解_java_02


【多线程&高并发】jcstress并发测试工具使用教程详解_测试工具_03

5.运行

【多线程&高并发】jcstress并发测试工具使用教程详解_html_05

【多线程&高并发】jcstress并发测试工具使用教程详解_开发语言_06

【多线程&高并发】jcstress并发测试工具使用教程详解_测试工具_07

成功!

【多线程&高并发】jcstress并发测试工具使用教程详解_java_08


举报

相关推荐

0 条评论