看书看到这一段代码,书上的意思这个backgroundThread永远不会终止,但是我在机器上跑了下,发现1秒之后程序停止了。我的理解是main线程结束,分出来的子线程都跟着结束。为什么书上说永远不会结束。而且我实验了下是会终止的。有知道的解释下,谢谢各位!
有书的可以看Effective Java 中文版 第二版的230页。
有书的可以看Effective Java 中文版 第二版的230页。
import java.util.concurrent.TimeUnit;
/**
* @author gl65293
*
*/
public class StopThread {
/**
* @param args
*/
private static boolean stopRequested;
public static void main(String[] args) throws InterruptedException {
Thread backgroundThread = new Thread(new Runnable(){
public void run(){
int i = 0;
while(!stopRequested){
i++;
}
}
});
backgroundThread.start();
TimeUnit.SECONDS.sleep(1);
stopRequested = true;
}
}