完整代码
import java.io.IOException;
public class DaemonThreadTest {
private static void execute() {
for (int i = 0; ; i++) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
}
}
public static void main(String[] args) throws IOException {
Thread thread = new Thread(() -> execute());
thread.setDaemon(true);
thread.start();
System.in.read();
}
}
说明
使用了一个后台守护线程,使用标准输出流输出计时结果。此时由于没有输入,主线程一直是IO阻塞的。
读到输入的时候主线程结束,后台的守护线程自然也结束。
如果不加IO阻塞的话,根本不会有输出的。 而这里则是只要你通过键盘标准输入任意内容,即可退出程序。(我一般喜欢直接用回车orz)