Java并发(十)----线程之守护线程

news/2025/1/15 18:02:45/

默认情况下,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 命令后,不会等待它们处理完当前请求


http://www.ppmy.cn/news/405644.html

相关文章

PaddleOCR #hello paddle: 从普通程序走向机器学习程序 - 初识机器学习

这篇示例向你介绍普通程序跟机器学习程序的区别,并带着你用百度飞桨框架,实现第一个机器学习程序,并初步认识机器学习。 作为一名开发者,你最熟悉的开始学习一门编程语言,或者一个深度学习框架的方式,可能是…

vscode download address

https://vscode.cdn.azure.cn/stable/4cb974a7aed77a74c7813bdccd99ee0d04901215/code_1.79.1-1686587647_amd64.deb

uni-app配置

运行到微信开发者工具 第一步: 配置微信开发者工具的路径 这个在点击运行的时候 会提示 第二部: 配置appid 为自己的微信开发者工具的appid manifest.json >微信小程序配置 第三步: 开发服务 打开微信开发者工具右上角的小齿轮 里面有个安…

vue2、vue-cli4以及vue3、vite打包去掉console.log

vue2 vue-cli4 webpack4会自带terser-webpack-plugin插件。 vue.config.js文件 module.exports { // ...chainWebpack(config) {// ...// 清除consoleconfig.optimization.minimizer(terser).tap(options > {options[0].terserOptions.compress.drop_console trueretu…

提取吗

打开http://static.rayfile.com/zh-cn/输入下例代码即可以下载 018某MTV视频系统ACC数据库版,¥500元.rardd01b5d4-f596-11e0-9b72-0015c55db73d 016完整无错的新乡广告网程序源码.rarb96e144f-f596-11e0-98fc-0015c55db73d 015测试完整的财经教育培训学校…

苹果在中国的降价策略收到效果 销量回升了

(原标题:iPhone 一降价,中国消费者就乖乖地出手了) 本文作者:I/O 据澎湃新闻报道,自1月13日iPhone在天猫平台启动降价以来,截至1月29日,iPhone在该平台的销量提升了76%。而自从1月11…

炫龙笔记本毁灭者dc更换CPU记录

文章目录 前言一、确认cpu和主板芯片型号二、搜索可更换的cpu三 、拆机更换cpu四 、蜿蜒曲折的咨询之路总结 前言 本来只想给老笔记本换个512g固态,原先的128g太小了,原装的是一个128g sata接口固态 发现我这台炫龙毁灭者dc居然还能换cpu,除…

Innovus: dbGet 快速学习教程

dbGet是innovus/encounter工具自带的"database access command"命令中的一部分,它几乎可以用来获取设计相关的一切信息。 输入dbGet 按[Tab]键,能看到三个选项,分别是head / top /selected。这三个选项所代表的意义如下: head --…