首页 > 其他分享 >守护线程

守护线程

时间:2022-10-28 09:11:35浏览次数:45  
标签:... log 线程 debug 开始运行 守护

守护线程

默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。

列如

log.debug("开始运行...");
Thread t1 = new Thread(() -> {
log.debug("开始运行...");
sleep(2);
log.debug("运行结束...");
}, "daemon");
// 设置该线程为守护线程
t1.setDaemon(true);
t1.start();

sleep(1);
log.debug("运行结束...");

输出

08:26:38.123 [main] c.TestDaemon - 开始运行... 
08:26:38.213 [daemon] c.TestDaemon - 开始运行... 
08:26:39.215 [main] c.TestDaemon - 运行结束...

注意

  • 垃圾回收器线程就是一种守护线程
  • Tomcat 中的 Acceptor 和 Poller 线程都是守护线程,所以 Tomcat 接收到 shutdown 命令后,不会等待它们处理完当前请求

标签:...,log,线程,debug,开始运行,守护
From: https://www.cnblogs.com/LoveBB/p/16834696.html

相关文章

  • 不同角度理解线程的状态(操作系统 & Java API)
    3.12五种状态(操作系统层面)这是从操作系统层面来描述的【初始状态】仅是在语言层面创建了线程对象,还未与操作系统线程关联【可运行状态】(就绪状态)指该线程......
  • Java多线程(5):CAS
     您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~  在JDK1.5之前,Java的多线程都是靠synchronized来保证同步的,这会引起很多性能问题,例如死锁。但随着Java的不断完善,J......
  • 线程状态—停止
    packagestate;publicclassTestStopimplementsRunnable{//设置一个标志位privatebooleanflag=true;@Overridepublicvoidrun(){......
  • Redis的单线程和高性能
    Redis是单线程吗?Redis的单线程主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。但Redis的其他功能,比如持久......
  • Daemontools的使用( Linux守护进程管理)
    前言Daemontools是一个在linux上可以进行守护进程管理的工具,当我们有一些程序需要常驻后台,万一不小心挂掉了他可以帮我们重启服务.这是他的官网,很简陋但是很有用安装......
  • ESP32 多线程入门实验
    一、线程创建函数函数voidxTaskCreate(pdTASK_CODEpvTaskCode,constportCHAR*constpcNane,unsignedportSHORTusStackDepth,void*pvParameters,unsigne......
  • 【Java】线程的死锁
    1.死锁不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。说明:出现死锁后,不会出现异常,不会出现提示,只是所有的线程......
  • IDEA在多线程环境下断点调试-验证synchronized监视锁的运行状态
    场景Java中数据同步-synchronized关键字与Mointor的使用:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126743812上面简单介绍synchronized的使用,如果在I......
  • Java多线程(4):ThreadLocal
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~​为了提高CPU的利用率,工程师们创造了多线程。但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间),于是工程师们......
  • Servlet的线程安全问题
    文章目录​​Servlet的线程安全问题​​​​引入​​​​Servlet的多线程机制​​​​如何修复​​​​1.实现SingleThreadModel接口​​​​2.避免使用成员变量​​​​3......