当前位置: 首页 > news >正文

定时器和守护线程

 (八)定时器

标准库中的定时器

标准库中提供了一个Timer类。Timer类的核心方法为schedule,schedule 包含两个参数:第⼀个参数指定即将要执行的任务代码,第⼆个参数指定多长时间之后执行(单位为毫秒)。

Timer timer = new Timer();
timer.schedule(new TimerTask() {@Overridepublic void run() {System.out.println("hello");}
}, 3000);

(九)守护线程

不要把操作系统的守护进程和守护线程相提并论

守护线程(Daemon Thread)是一种特殊的线程,它的主要作用是为其他线程提供服务,而不是执行核心业务逻辑。当所有非守护线程(用户线程)结束时,JVM 会自动终止守护线程,即使它们还在执行中。

通过 Thread.setDaemon(true) 方法将线程设置为守护线程,必须在启动线程前设置

    public static void main(String[] args) throws InterruptedException {Thread main = Thread.currentThread();Thread t = new Thread(() -> {try {while (true){System.out.println("我是守护线程");Thread.sleep(1000);}} catch (InterruptedException e) {throw new RuntimeException(e);}});t.setDaemon(true);t.start();Thread.sleep(3000);}

特性:

特性描述
线程类型判断thread.isDaemon():返回 true 表示守护线程,false 表示用户线程。
设置时机必须在 thread.start() 前调用 setDaemon(true),否则会抛出 IllegalThreadStateException
继承性线程创建的子线程会继承父线程的守护状态。例如,守护线程创建的子线程默认是守护线程。
终止机制当所有用户线程结束时,JVM 会自动调用 System.exit(0) 终止守护线程,不会等待守护线程完成。

http://www.dtcms.com/a/268124.html

相关文章:

  • 【Guava】1.0.设计虚拟机的方向
  • tensorflow武林志第二卷第九章:玄功九转
  • 广东省省考备考(第四十天7.6)——资料分析(第八节课)
  • Python Bcrypt详解:从原理到实战的安全密码存储方案
  • 【C++】C++四种类型转换操作符详解
  • 【Note】《Kafka: The Definitive Guide》第一章:Meet Kafka
  • LeetCode--41.缺失的第一个正数
  • get: ()=>state 和get: ()=>{state}
  • Java 集合
  • ClickHouse 全生命周期性能优化
  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品创新设计与风险评估中的应用(335)
  • 人工智能在软件开发领域的应用优势劣分析及应对策略
  • js event.preventDefault()的作用
  • Web前端开发-HTML、CSS
  • 【从0-1的CSS】第3篇:盒子模型与弹性布局
  • Application的onLowMemory从Android API 34开始系统不再触发,从API 35开始废弃
  • 网安系列【7】之文件上传漏洞
  • 云服务器环境配置——安装Tomcat
  • Redis集群部署指南:高可用与分布式实践
  • 网关多次读取流问题
  • 老树新花语新颜,汉字筑渠话情流——与ai助手闲聊成诗(智普清言)
  • 程序员在线接单
  • Python设计小游戏方法简介
  • SpringBoot基于Mysql的商业辅助决策系统设计与实现
  • Web前端开发-Vue
  • 【网络安全基础】第九章---IP安全
  • unix环境编程试题
  • 平台设备总线相关概念(RK3588)
  • 多模态大模型推理技术突破:从 CoT 数据到 RL 优化,AI 推理如何征服复杂任务?
  • 开源!RAG竞技场(2):标准RAG算法