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

1.首先创建一个maven项目

【多线程&高并发】jcstress并发测试工具使用教程详解_第1张图片2.引入jcstress-core依赖

        <dependency>
            <groupId>org.openjdk.jcstressgroupId>
            <artifactId>jcstress-coreartifactId>
            <version>0.14version>
        dependency>

3.准备测试代码

import org.openjdk.jcstress.annotations.*;
import org.openjdk.jcstress.infra.results.I_Result;

/**
 * @author:Ronin
 * @since:2021/12/2
 * @email:[email protected]
 */
@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并发测试工具使用教程详解_第2张图片
【多线程&高并发】jcstress并发测试工具使用教程详解_第3张图片5.运行

之 后 会 在 根 目 录 下 生 成 两 个 文 件 , 打 开 i n d e x . h t m l 之后会在根目录下生成两个文件,打开index.html index.html
【多线程&高并发】jcstress并发测试工具使用教程详解_第4张图片【多线程&高并发】jcstress并发测试工具使用教程详解_第5张图片

【多线程&高并发】jcstress并发测试工具使用教程详解_第6张图片成功!
【多线程&高并发】jcstress并发测试工具使用教程详解_第7张图片

你可能感兴趣的:(多线程&高并发,测试工具,java,开发语言)