Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人能给我举个使用Volatile的例子吗_Java_Static_Volatile - Fatal编程技术网

Java 有人能给我举个使用Volatile的例子吗

Java 有人能给我举个使用Volatile的例子吗,java,static,volatile,Java,Static,Volatile,可能重复: 我并没有发现静态变量和可变变量之间的区别 在上面的代码中,我也可以用静态变量实现同样的功能,任何人都可以给我举个例子,说明只有volatile才能实现这个目的吗?我想到的第一个例子: 在值上使用volatile强制更新的原子性 public class Test { volatile boolean running = true; public void count() { new Thread(new Runnable() { public void

可能重复:

我并没有发现静态变量和可变变量之间的区别


在上面的代码中,我也可以用静态变量实现同样的功能,任何人都可以给我举个例子,说明只有volatile才能实现这个目的吗?

我想到的第一个例子:

在值上使用volatile强制更新的原子性

public class Test {
volatile  boolean running = true;

public void count() {
    new Thread(new Runnable() {
        public void run() {
            int counter = 0;
            while (running) {

                counter++;
                System.out.println("Thread 1 counting " + counter);
            }
            System.out.println("Thread 1 finished. Counted up to "
                    + counter);
        }
    }).start();
    new Thread(new Runnable() {
        public void run() {             
            try {
                Thread.sleep(1);
            } catch (InterruptedException ignored) {
            }
            System.out.println("Thread 2 finishing");
            running = false;
        }
    }).start();
}

public static void main(String[] args) {

    new Test().count();
}
}