Java学习-074-多线程07:后台线程 Thread.setDaemon(true)
2023-09-11 14:18:59 时间
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 方法中的休眠时间加长后,还会输出更多的信息,如下所示:
由上述两次的输出结果可以看出,前台线程存续期间,后台线程是也是存在的;当前台线程结束后,后台线程也就消失了。
相关文章
- 深入java面向对象四:Java 内部类种类及使用解析(转)
- Java笔记:多线程
- java -version 问题 : C:ProgramDataOracleJavajavapath;
- java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁
- Java实现 LeetCode 837 新21点(DP)
- Java实现第九届蓝桥杯全球变暖
- java实现哈密顿回路问题
- Java实现 蓝桥杯VIP 算法提高 阶乘差
- Java实现 蓝桥杯VIP 算法训练 采油区域
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- Java 多线程编程(2-异步中包含同步)
- java jar 运行自动重启 linux
- java多线程(三)——锁机制synchronized(同步语句块)
- Java中实现多线程的两种方式之间的区别
- Java虚拟机学习(1):体系结构 内存模型
- Java多线程--使用future进行异步编程
- 新手学JAVA(十)-多线程----线程的创建和启动
- Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
- atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97
- paip.java c++得到当前类,方法名称以及行号
- java队列——queue详细分析
- JAVA编程:java环境安装和helloworld
- Java Logger(java日志)
- Java-面向对象概念
- java面试题:多线程与并发
- python 垃圾回收——分代回收 和java有些区别 注意循环引用无法被回收
- 多线程开发实战:Java实现多线程四种方式及相关方法原理
- Java Spring里getBean方法的实现
- 【java】Java线程池实现原理及业务中的实践
- JAVA开发讲义(二)-Java程序设计之数据之谜三
- JAVA开发讲义(一)-Java的自白