// Java守护线程示例代码
public class DaemonThreadExample {
public static void main(String[] args) {
// 创建一个普通线程
Thread normalThread = new Thread(() -> {
for (int i = 0; i < 5; i++) {
System.out.println("Normal Thread: " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
// 创建一个守护线程
Thread daemonThread = new Thread(() -> {
while (true) {
System.out.println("Daemon Thread is running...");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
// 设置daemonThread为守护线程
daemonThread.setDaemon(true);
// 启动线程
normalThread.start();
daemonThread.start();
// 主线程等待normalThread完成
try {
normalThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 主线程结束,由于守护线程不会阻止JVM退出,所以daemonThread也会随之终止
System.out.println("Main thread finished.");
}
}
normalThread):执行5次循环,每次打印一条消息并休眠1秒。主线程会等待这个线程完成。daemonThread):无限循环,每隔500毫秒打印一条消息。由于它是守护线程,当所有非守护线程(如normalThread)结束后,JVM会自动终止它。daemonThread.setDaemon(true)将线程设置为守护线程。必须在启动线程之前设置。normalThread.join()让主线程等待normalThread完成后再继续。当normalThread结束后,JVM会终止守护线程并退出程序。
上一篇:java转义
下一篇:java获取客户端ip地址
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站