这是我的代码
public class VolitaleTest {
public static void main(String[] args) throws InterruptedException {
Vo v = new Vo();
new Thread(v).start();
Thread.sleep(1000l);
v.setRunning(false);
}
}
class Vo implements Runnable {
private boolean isRunning = true;
public void run() {
while (isRunning) {
}
System.out.println("Stoped.");
}
public void setRunning(boolean isRunning) {
this.isRunning = isRunning;
}
}
sleep()方法当中的时间如果为1000l的话,运行的时候v进程不会终止,无法打印Stoped语句,eclipse也显示进程在运行中,
但是如果我把1000l改为1l的话,v进程会终止,也会打印Stoped语句,eclipse也会显示所有进程已经结束
如果我把1000l改为10l的话,就有时候会停止有时候不会停。
另一种尝试:
请问这是为什么?到底是什么在影响进程的停止与否?