控制线程--后台线程
Posted wangdan1030
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了控制线程--后台线程相关的知识,希望对你有一定的参考价值。
我们上一篇讲了join线程,这一篇我们主要来了解一下后台线程。后台线程主要是为其他线程提供服务,如果前台线程都死亡,后台线程会自动死亡,JVM的来及回收机制就是典型的后台线程,下面我们来看看实例。public class DaemonTest extends Thread
public void run()
for(int i=0;i<1000;i++)
System.out.println(getName()+" "+i);
public static void main(String[] args)
DaemonTest t= new DaemonTest();
//将此线程设置为后台线程
t.setDaemon(true);
t.start();
for(int i=0;i<100;i++)
System.out.println(Thread.currentThread().getName()+" "+i);
解析:今天我们分享的这个线程很有意思,大家自己根据稳重的代码运行就行(PS 大家可以修改一些代码中的i的值并运行,看看运行结果)。 (1)在这里我首先设置main方法里面i的值为10 , DaemonTest子线程都没有来得及运行主线程就结束了。
(2)我设置方法main里面的i为2000,后台线程先执行完,这个因为前台线程的循环次数远大于后台线程循环次数,所以会出现这样的结果。后台线程已经结束,前台线程还在进行。
(3)我设置main 方法中的i为100.,在main执行过程中后台线程就抢夺了资源开始运行,在主线程结束之后,后台进程还运行了一部分。这是因为前台进程死亡后,JVM还需要通知后台进程死亡。从后台进程接受指令到他做出相应需要一定的时间,所以后台线程仍然能够执行一部分。
总结: 线程的控制是很有意思的一件事情,因为线程装入CPU的顺序是不定的,所以执行出来的结果也不相同,这就是并发程序的魅力,我们要做的是让我们的代码更好的符合我们的想法去实现。很高兴和大家分享。
以上是关于控制线程--后台线程的主要内容,如果未能解决你的问题,请参考以下文章