package com.freeflying.thread.volatil;
/**
* 通過線程的方式處理同步死循環
* @ClassName: HandleAsyncDeadCycle
* @Description:
* @author freeflying
* @date 2018年7月12日
*/
public class HandleAsyncDeadCycle {
public static void main(String[] args) {
HandleAsyncDeadCycleEx handleAsyncDeadCycleEx=new HandleAsyncDeadCycleEx();
new Thread(handleAsyncDeadCycleEx).start();
System.out.println("I will stop it! stopThreadName="+Thread.currentThread().getName());
handleAsyncDeadCycleEx.setContinuePrint(false);
}
}
class HandleAsyncDeadCycleEx implements Runnable{
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) {}
}
@Override
public void run() {
printStringMethod();
}
}
結果:
I will stop it! stopThreadName=main
run printStringMethod threadName=Thread-0