不变式是指什么类型的式子

来源:4-5 volatile使用注意事项

meetyu

2015-05-16 10:44

不变式是指什么类型的式子

写回答 关注

3回答

  • passionfoure
    2015-05-28 14:47:51
    已采纳

    这里面有两个VOLATILE变量,它包含了一个不变式就是LOW<UP( if (value > upper) 和   if (value < low) )

    public class A {
       private volatile int low=0;

       private volatile int up=100;

       public int getLow() { return low; }
       public int getUp() { return up; }

       public void setLow(int value) {
           if (value > upper)
                system.out.print(".......");
           low = value;
       }

       public void setUp(int value) {
           if (value < low)
               system.out.print(".......");

           up = value;
       }
    }

    初始值是0和100,如果有两个线程同时操作set函数,一比如A线程操作setlow(4),B线程setup(3),最后结果是4和3。

    qq_夜39... 回复_曲終散

    https://www.ibm.com/developerworks/cn/java/j-jtp06197.html里面有关于它的介绍

    2019-01-27 11:08:29

    共 3 条回复 >

  • qq_听风_2
    2017-08-01 20:46:14

    还是因为volatile不能实现原子性。

  • leichenlei
    2015-05-20 11:04:06

    同问啊。

    其他变量:是指的volatile变量,还是普通变量?

    不变式:是什么样的?

细说Java多线程之内存可见性

用两种方式实现内存可见性,代领大家深层次学习Java中的内存

55899 学习 · 89 问题

查看课程

相似问题