如何实现Java内存模型因果关系测试用例1

时间:2016-11-17 19:06:54

标签: java concurrency java-memory-model

我正在研究Java语言规范17.4中的Java内存模型。我想测试因果关系来理解java内存模型。我在JMM causality test case中找到了一组因果关系。我实现了测试用例1,它遵循:< / p>

@JCStressTest
@State
public class CausalityTestCase1 {

    int x = 0;
    int y = 0;

    @Actor
    public void actor1(IntResult2 r) {
        r.r1 = x;

        if (r.r1 >= 0) {
            y = 1;
        }
    }

    @Actor
    public void actor2(IntResult2 r) {
        r.r2 = y;

        x = r.r2;
    }

}

我使用jcstress lib测试这个case.r1 == r2 == 1是不可能的,但是没有发生。我认为我的实现没有得到纠正,但我不知道如何测试。

0 个答案:

没有答案