1. package daemonThread;
  2. /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false
  3. * 只要当前JVM实例中存在任何一个非守护线程没有结束,守护线程就在工作
  4. * 当进程中不存在非守护线程,则守护线程随着JVM一同结束
  5. * GC(垃圾回收器)就是一个守护线程
  6. * 本例中main线程虽然先结束,但是testThread线程还在工作,所以只有当testThread线程也结束,才停止打印i */
  7. class MyThread extends Thread{
  8. private int i = 0;
  9. @Override
  10. public void run(){
  11. super.run();
  12. try{
  13. while(true){
  14. i++;
  15. System.out.println("i="+i);
  16. Thread.sleep(1000);
  17. }
  18. }catch(InterruptedException ie){
  19. ie.printStackTrace();
  20. }
  21. }
  22. }
  23. class testThread extends Thread{
  24. @Override
  25. public void run(){
  26. try{
  27. Thread.sleep(10000); //testThread线程约10秒后结束
  28. System.out.println(Thread.currentThread().getName()+"线程结束!");
  29. }catch(InterruptedException ie){
  30. ie.printStackTrace();
  31. }
  32. }
  33. }
  34. public class Run {
  35. public static void main(String[] args) {
  36. // TODO Auto-generated method stub
  37. try{
  38. MyThread thread = new MyThread();
  39. thread.setName("thread");
  40. thread.setDaemon(true); //将thread线程设为守护线程
  41. thread.start();
  42. testThread t = new testThread();
  43. t.setName("testThread");
  44. t.start();
  45. Thread.sleep(5000);  //main线程在这里停留5秒
  46. System.out.println("主线程结束了");//5秒后main线程结束了,但是testThread线程还在执行,所以守护线程继续工作
  47. /*当所有线程都结束时,thread线程也随之结束*/
  48. }catch(InterruptedException ie){
  49. ie.printStackTrace();
  50. }
  51. }
  52. }

运行结果如下图

java守护线程的理解的更多相关文章

  1. JAVA 对守护线程的理解

    1.在start之前,setDaemon. 该现场就成为守护线程了. 2.守护现线程并不是主线程结束,子线程(守护线程)也跟着结束.而是守护线程在没有用户线程运行的情况伴随着JVM退出而结束. 示例代 ...

  2. Python多线程的创建,相关函数和守护线程的理解

    一:多线程的创建 threading库创建线程有两种方式,函数式和继承式    1)函数式 def func(): print 'Starting' print 'Ending' t=threadin ...

  3. java 守护线程整理

    java中finally语句不走的可能存在system.exit(0)与守护线程 线程sleep采用TimeUnit类 设定线程的名字thread.getcurrentThread().setName ...

  4. 从 JVM 视角看看 Java 守护线程

    Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. Marks this thre ...

  5. Java守护线程

    最近的项目使用的是dubbo.Web工程发布在Tomcat上,会作为消费者调用其他的dubbo微服务.但是最近发现一个问题,在使用shutdown命令关闭tomcat的时候,Tomcat并没有真正关闭 ...

  6. 白话JAVA守护线程

    OneCoder(苦逼Coder)原创,转载请务必注明出处: http://www.coderli.com/archives/daemon-thread-plain-words/ 关于“白话”:偶然想 ...

  7. 转:JAVA守护线程

    原文地址:https://www.cnblogs.com/wxgblogs/p/5417503.html 详细内容看原文~  ,写的挺好的 在Java中有两类线程:User Thread(用户线程). ...

  8. Java 守护线程概述

    原文出处: 朱小厮 Java的线程分为两种:User Thread(用户线程).DaemonThread(守护线程). 只要当前JVM实例中尚存任何一个非守护线程没有结束,守护线程就全部工作:只有当最 ...

  9. JAVA - 守护线程(Daemon Thread)

    转载自:http://www.cnblogs.com/luochengor/archive/2011/08/11/2134818.html 在Java中有两类线程:用户线程 (User Thread) ...

随机推荐

  1. LoadRunner之篇

    一.LoadRuuner 转载至:http://wenku.baidu.com/view/48c4c802e87101f69e319582.html

  2. 【转】怎么让VS2015编写的程序在XP中顺利运行

    1. 概述 默认配置下VS2015编写的应用程序只能在Win8/Win10上运行.但幸好还保留了生成XP程序的设置项.XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们.另外X ...

  3. 得到APP【每天听本书】微信交流群(每天更新)

    得到APP[每天听本书]微信交流群,每天更新下载学习资料 添加个人微信号:zhidu10000 进入微信群. “坚持每天读一本书,每天进步1.01,每年进步37.8倍” 2016年书单合辑点此链接,查 ...

  4. mylistview 中item的子项的布局文件xml

    @Override public View getView(final int position, View view, ViewGroup parent) { System.out.println( ...

  5. VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径

    原文链接:http://www.cnblogs.com/lidabo/archive/2012/05/29/2524170.html 说明 $(RemoteMachine) 设置为“调试”属性页上“远 ...

  6. MVC学习笔记-01

    什么是MVC MVC是指(Model-View-Controll即模型-视图-控制器)用于表示表示一种软件架构模式,它把软件分成三个基本的部分:模型(Model),视图(view),控制器(Contr ...

  7. mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用

    mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花 ...

  8. MyBatis学习(一)、MyBatis简介与配置MyBatis+Spring+MySql

    一.MyBatis简介与配置MyBatis+Spring+MySql 1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的J ...

  9. UNION 和 UNION ALL 区别

    UNION用的比较多union all是直接连接,取到得是所有值,记录可能有重复 union 是取唯一值,记录没有重复 1.UNION 的语法如下: [SQL 语句 1] UNION [SQL 语句 ...

  10. Python 字符串格式化

    Python 字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存 一 ...