HappyHeng 2018-11-26 01:13 采纳率: 0%
浏览 489

这个Volatile的例子是有错误么?如何运行才能使其一直运行下去?

想问一下各位大神,我想得到一个Volatile的使用案例,这是以下代码,按照下面的代码,
如果我设置jvm运行参数为 -server 的时候,应该会一直运行下去,程序进入死循环,但实际上
并没有,这是为什么呢?

public class Main {


    public static void main(String[] args) {

        VolatileThread volatileThread = new VolatileThread();
        volatileThread.start();


        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        volatileThread.setContinue(false);

    }



}

public class VolatileThread extends Thread{

    private boolean isContinue = true;

    public void setContinue(boolean aContinue) {
        isContinue = aContinue;
    }

    @Override
    public void run() {


        while (isContinue){
            System.out.println("Continue");
        }

        System.out.println("end");

    }


}

我使用IDEA来运行程序,下面是我设置运行参数的图:
图片说明
是我的参数未设置正确?还是例子不正确呢?

  • 写回答

2条回答 默认 最新

  • qq_38306788 2018-11-26 02:30
    关注

    isContinue需要加volatile修饰,去看看volatile关键字的作用

    评论

报告相同问题?