后台线程作用与实现机制详解
时间:2026-08-15 | 作者:多维游侠 | 阅读:0前台线程与后台线程
还是以上面的售票案例为例,当main()方法里创建并启动的4个新线程把各自的代码跑完之后,主线程本身其实就已经结束了。
从程序运行结果也能看得很清楚:主线程虽然退出了,整个Java程序却并不会立刻停止,售票相关的代码依然在继续执行。
原因就在于,对Java程序来说,只要还有哪怕一个前台线程处于运行状态,整个进程就不会结束。
反过来,如果一个进程里剩下的只有后台线程,那么这个进程就会退出。
前台线程和后台线程的默认规则
这里说的前台线程和后台线程,本质上是相对概念。
- 通常情况下,新创建出来的线程默认都是前台线程;
- 但如果某个线程对象在启动之前调用了setDaemon(true)语句,那么它就会被设置为后台线程。
接下来,再通过一个案例具体演示一下:当程序中只剩后台线程时,它是如何结束的,见文件1。
文件1 Example06.java
1 class DamonThread implements Runnable {
2 public void run() {
3 while (true) {
4 System.out.println(Thread.currentThread().getName()
5 + "---在运行");
6 }
7 }
8 }
9 public class Example06 {
10 public static void main(String[] args) {
11 // 判断是否为后台线程
12 System.out.println("main线程是后台线程吗"
13 + Thread.currentThread().isDaemon());
14 DamonThread dt = new DamonThread();
15 Thread thread = new Thread(dt, "后台线程");
16 System.out.println("thread线程默认是后台线程吗"
17 + thread.isDaemon());
18 // 将线程thread线程对象设置为后台线程
19 thread.setDaemon(true);
20 thread.start();
21 // 模拟主线程main的执行任务
22 for (int i = 0; i < 5; i++) {
23 System.out.println(i);
24 }
25 }
26 }
运行结果如图1所示。
图1 运行结果
运行结果说明
在文件1里,展示的是一个后台线程退出的完整过程。
把线程thread设为后台线程之后,一旦前台主线程完成循环输出任务,整个进程就会随之结束,这时JVM也会通知后台线程停止。
只是后台线程从接收到结束信号,到真正响应并退出,中间会有一点时间差。
所以还能看到它继续打印几次“后台线程---在运行”,随后才正式结束。
这个过程恰好说明了一点:当进程里已经没有前台线程时,整个进程也就走到终点了。
注意事项
要将某个线程设置为后台线程,必须在该线程启动之前。
也就是说,setDaemon()方法必须在start()方法之前调用,否则后台线程设置无效。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 迅捷路由器怎么调信号最强,设置时要注意什么?
- 时间:2026-08-27
-
- vivo浏览器怎么卸不掉?原因和解决方法在这里
- 时间:2026-08-27
-
- OPPO R11s黑屏了,怎么强制恢复出厂设置?
- 时间:2026-08-27
-
- 飞利浦显示器包装盒有生产日期和保修期吗?怎么看?
- 时间:2026-08-27
-
- 联想新平板开机必须联网吗?怎么做?
- 时间:2026-08-27
-
- 平板横竖屏切换设置与问题解决
- 时间:2026-08-27
-
- 移动电源容量怎么测?要准备哪些工具?
- 时间:2026-08-27
-
- 荣耀90 Pro防水吗?防水级别多少?怎么用才安全
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 以下哪种食材被称为“地下苹果” 蚂蚁庄园今日答案9.18
- 时间:2026-09-17
-
- 蚂蚁庄园今天答题答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园答题今日答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园小课堂2026年9月18日最新题目答案
- 时间:2026-09-17
-
- 小鸡答题今天的答案是什么2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园每日答题答案2026年9月18日
- 时间:2026-09-17
-
- 蔬菜洗完掉色,说明是被染色了,是真的吗 蚂蚁庄园今日答案9月18日
- 时间:2026-09-17
-
- 满襟蜡绘花纹巧染就花纹当绣裳说的是哪种传统技艺 蚂蚁新村今日答案2026.9.17
- 时间:2026-09-17
