问答详情
源自:4-5 volatile使用注意事项

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

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

提问者:meetyu 2015-05-16 10:44

个回答

  • 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_听风_2
    2017-08-01 20:46:14

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

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

    同问啊。

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

    不变式:是什么样的?