package com.freeflying.thread.volatil;
public class PrintString {
public static void main(String[] args) {
PrintStringEx printStringEx=new PrintStringEx();
printStringEx.printStringMethod();
System.out.println("I will stop it! stopThreadName="+Thread.currentThread().getName());
printStringEx.setContinuePrint(false);
}
}
class PrintStringEx{
private boolean isContinuePrint=true;
public boolean isContunuePrint() {
return isContinuePrint;
}
public void setContinuePrint(boolean isContinuePrint) {
this.isContinuePrint=isContinuePrint;
}
public void printStringMethod() {
try {
while(isContinuePrint==true) {
System.out.println("run printStringMethod threadName="+Thread.currentThread().getName());
Thread.sleep(1000);
}
} catch (Exception e) {}
}
}
结果:
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main
run printStringMethod threadName=main 。。。
结论:程序在开始运行以后不能stop,原因是main线程一直在处理while循环,使程序不能执行后面代码了