加不加Volatile看不出有啥效果啊?

import java.util.concurrent.atomic.AtomicInteger;

public class VolatilePattern1 extends Thread{

volatile boolean shutdownRequested;
private AtomicInteger count = new AtomicInteger();

public void shutdown() {
shutdownRequested = true;
}

public void run() {
System.out.println("Thread:" + Thread.currentThread().getName()+" started.");
while (!shutdownRequested) {
System.out.println("working ..."+count);
count.getAndIncrement();
try {
Thread.sleep(50);
} catch(InterruptedException ie) {
ie.printStackTrace();
}
}
}

public static void main(String[] args) {
System.out.println("Thread:" + Thread.currentThread().getName()+" started.");
VolatilePattern1 vp = new VolatilePattern1();
vp.start();
try {
Thread.sleep(2000);
} catch(InterruptedException ie) {
ie.printStackTrace();
} finally {
vp.shutdown();
}
}

}

你可能感兴趣的:(加不加Volatile看不出有啥效果啊?)