快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Java中怎么实现后台线程操作

Java中怎么实现后台线程操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联是专业的涟源网站建设公司,涟源接单;提供网站制作、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行涟源网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

一 点睛

有一种线程,它是后面运行的,它的任务是为其他线程提供服务,这种线程被称为“后台”线程,又称为“守护线程”或“精灵线程”。JVM的垃圾回收线程就是典型的后台线程。

后台线程有个特征:如果所有的前台线程都死亡,后台线程会自动死亡,

调用Thread对象的setDaemon(true)方法可将指定线程设置成后台线程,所有的前台线程都死亡时,后台线程随之死亡。当整个虚拟机中只剩下后台线程时,程序就没有继续运行的必要了,虚拟机也就退出了。

二 代码

public class DaemonThread extends Thread{   // 定义后台线程的线程执行体与普通线程没有任何区别   public void run()   {      for (int i = 0; i < 1000 ; i++ )      {        System.out.println(getName() + " " + i);      }   }   public static void main(String[] args)   {      DaemonThread t = new DaemonThread();      // 将此线程设置成后台线程      t.setDaemon(true);      // 启动后台线程      t.start();      for (int i = 0 ; i < 10 ; i++ )      {        System.out.println(Thread.currentThread().getName()           + " " + i);      }      // -----程序执行到此处,前台线程(main线程)结束------      // 后台线程也应该随之结束   }}

三 运行

main 0Thread-0 0main 1Thread-0 1main 2Thread-0 2main 3Thread-0 3main 4Thread-0 4main 5Thread-0 5main 6Thread-0 6main 7Thread-0 7main 8Thread-0 8main 9Thread-0 9Thread-0 10Thread-0 11Thread-0 12Thread-0 13Thread-0 14Thread-0 15Thread-0 16Thread-0 17Thread-0 18

四 说明

上面程序中先将t线程设置成后台线程,然后启动该线程,本来该线程应该执行到i等于999才会结束,但从结果不难发现,该后台线程无法运行到999,因为当主线程也就是程序唯一的前台线程运行结束后,JVM会主动退出,因而后台线程也就被结束了。

主线程默认是前台线程,t线程默认也是前台线程。并不是所有的线程默认都是前台线程,有些线程默认就是后台线程——前台线程创建的子线程默认是前台线程,后台线程创建的子线程默认是后台线程。

setDaemon(true)必须在start()方法之前调用,否则会引发异常。

看完上述内容,你们掌握Java中怎么实现后台线程操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前标题:Java中怎么实现后台线程操作
URL地址:http://6mz.cn/article/gioggj.html

其他资讯