Java学习-074-多线程07:后台线程 Thread.setDaemon(true)
Java 程序中,只要前台存在一个线程,则 Java 进程(程序)都不会消失。在前台线程存续期间,可以设置一个后台线程,线程设置为后台线程可通过 Thread.setDaemon(true) 实现。示例代码如下所示:
package com.fanfengping.demo; import lombok.extern.slf4j.Slf4j; /** * Java 程序中,只要前台存在一个线程,则 Java 进程(程序)都不会消失。 * 在前台线程存续期间,可以设置一个后台线程,线程设置为后台线程可通过 * Thread.setDaemon(true) 实现 */ @Slf4j public class Demo11RunnableDaemon implements Runnable { @Override public void run() { for (int i = 0; i < 100; i++) { try { Thread.sleep(30); } catch (InterruptedException e) { e.printStackTrace(); } if (i % 5 == 0) { log.info("{} output {}", Thread.currentThread().getName(), i); } } } public static void main(String[] args) { Demo11RunnableDaemon demo11RunnableDaemon = new Demo11RunnableDaemon(); Thread threadDaemon = new Thread(demo11RunnableDaemon, "后台线程"); threadDaemon.setDaemon(true); threadDaemon.start(); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }
运行程序,控制台输出结果如下所示:
将 main 方法中的休眠时间加长后,还会输出更多的信息,如下所示:
由上述两次的输出结果可以看出,前台线程存续期间,后台线程是也是存在的;当前台线程结束后,后台线程也就消失了。
原文地址:https://www.cnblogs.com/fengpingfan/p/14704360.html