教育路上

全国站>Java>多线程>java后台线程多线程
学员需求

java后台线程多线程

摘要:java后台线程多线程,这时方法会结束,main 线程也就随之结束了。java 后台 线程 多线程。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。

2022-05-19 13:38网络推荐

发布时间:
2022-05-19 13:38
信息来源:
网络推荐
浏览次数:
467
java后台线程多线程

上面的售票案例中,当 main()方法中创建并启动四个新的线程后,main()方法中的代码

执行完毕,这时方法会结束,main 线程也就随之结束了。通过程序的运行结果可以看出,

虽然 main 线程结束了,但整个 Java 程序却没有随之结束,仍然在执行售票的代码。对 Java

程序来说,只要还有一个前台线程在运行,这个进程就不会结束,如果一个进程中只有后台

线程运行。这个进程就会结束。这里提到的前台线程和后台线程是一种相对的概念,新创建

的线程默认都是前台线程,如果某个线程对象在启动之前调用 setDaemon(true)语句,这个

线程就变成个后台线程。接下来通过一个案例来演示当前程序只有后台线程时就会结束的情

况,如例 14-6 所示。

例 14-6 Example06.java

class DamonThread implements Runnable { // 创建 DamonThread 类,实现 Runnable 接口

public void run() { // 实现接口中的 run()方法

while (true) {

System.out.println(Thread.currentThread().getName()

+ "---is running.");

}

}

}

public class Example06 {

public static void main(String[] args) {

System.out.println("main 线程是后台线程吗?"+

Thread.currentThread().isDaemon());

DamonThread dt = new DamonThread(); // 创建一个 DamonThread 对象

dt

Thread t = new Thread(dt,"后台线程"); // 创建线程 t 共享 dt 资源

System.out.println("t 线程默认是后台线程吗? "+t.isDaemon()); // 判断是否为

后台线程

t.setDaemon(true); // 将线程 t 设置为后台线程

t.start(); // 调用 start()方法开启线程 t

for(int i=0;i<10;i++){

System.out.println(i);

}

}

}

运行结果如图 14-9 所示

例 14- 6 演示了一个后台线程结束的过程。当开启线程 t 后,会执行死循环中的打印语

句,但我们将线程 t 设置为后台线程后,当前台线程死亡后,JVM 会通知后台线程。由于后

台线程从接受指令,到做出响应,需要一定的时间,因此,打印了几次“后台线程—isrunning.”

语句后,后台线程也结束了。由此说明进程中只有后台线程运行时,进程就会结束。

from shengerguan

注意:要将某个线程设置为后台线程,必须在该线程启动之前,也就是说 setDaemon() 方法必须在 start()方法之前调用,否则会引发 IllegalThreadStateException 异常。

上一篇:
java两种实现多线程方式的对比分析Thread和Runable
下一篇:
java线程的生命周期及状态转换
标签:
网友评论
发布评论

访客的评论 2023/12/03 05:21

文中描述的是准确的吗,如何报名!

相关推荐
我也来发表评价关闭
我对该内容的评价:
0
评价500
验证码: 看不清 换一张
提交 (匿名发布,无须担心别人知道您的身份)
学校免费发布信息关闭
我们审核后会尽快展示,如有图片请发邮件到:edu63@foxmail.com

姓      名:

内      容:

手机号码:

验  证  码:  换一张

确认提交
填写需求信息关闭
我们会根据您的需求匹配并审核留言

姓      名:

意向城市:

留      言:

手机号码:

验  证  码:  换一张

确认提交
完善补充本文信息关闭
非常感谢您帮助完善补充本文信息


 换一张

确认提交