全国
Java--教育路上

栏目导航

全国站 > Java > 多线程
需求

java后台线程多线程

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

标签:
发布时间:
2024-05-02 07:40
信息来源:
网络推荐
浏览次数:
571
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两种实现多线程方式的对比..
下一篇:
java线程的生命周期及状态转换
相关推荐
最近更新
学校免费发布信息关闭
如有图片请发邮件到:edu63@foxmail.com,审核后显示

 换一张

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


 换一张

确认提交