1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java前台线程与后台线程

Java前台线程与后台线程

时间:2020-08-22 03:18:03

相关推荐

Java前台线程与后台线程

Java前台线程与后台线程

上一篇博客在main()方法中,创建并启动了四个新的线程后,main()方法中的代码执行完毕,此时,方法会结束,main线程也就随之结束了

通过程序的运行结果可以看出,虽然,main线程结束了,但是整个Java程序却没有随之结束,仍然在执行售票的代码

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

前台线程与后台线程

前台线程、后台线程是一种相对的概念

新创建的线程,默认都是前台线程

如果,某个线程对象在启动之前,调用了setDaemon(true)语句,这个线程就变成了一个后台线程

示例,Example06.java

// 创建DamonThread类,实现Runnable接口class DamonThread implements Runnable{// 实现接口中的run()方法public void 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// 创建线程t,共享dt资源DamonThread dt=new DamonThread();Thread t=new Thread(dt,"后台线程");System.out.println("t线程默认是后台线程吗?"+t.isDaemon());// 将线程t,设置为后台线程// 调用start()方法,开启线程tt.setDaemon(true);t.start();for(int i=0;i<10;i++){System.out.println(i);}}}

编译运行

演示了一个后台线程结束的过程

当开启线程t之后,会执行死循环中的打印语句,我们将线程t设置为后台线程后,当前台线程死亡后,JVM会通知后台线程

由于,后台线程从接受指令,到做出响应,需要一定的时间,因此,打印了几次后台线程—is running语句后,后台线程也结束了

因此,说明后台线程在运行时,进程就结束了

设置后台线程

将某个线程设置为后台线程,必须在该线程启动之前

也就是说,setDaemon()方法必须在start()方法之前调用,否则,会引发IllegalTreadStateException异常

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。