使用volatile停止线程

使用volatile停止线程,而且volatile可以保证flag为系统内存的值而不是缓存里的值,避免了值不一致的情况


public class MyThread implements Runnable{
    private volatile boolean flag;
    public void stop() {
        // TODO Auto-generated method stub
        flag = false;
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        while(true) 
            System.out.println("a");
    }

}



/*test*/


public class Test_thread {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyThread mt = new MyThread();

        mt.run();
        mt.stop();

    }

}

你可能感兴趣的:(java)