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

8.设计模式-两阶段终止(优雅停机)

优雅停机

应用程序停止之前,内部的线程如果有业务正在执行,如何优雅的关闭。

  • 要终止一个线程,不要直接stop(),因为这个线程可能还有事情没有完成,比如还有锁没有释放
  • 也不要System.exit(), 因为这样直接结束进程了
  • stop方法已经过时了

使用interrupt方法实现

@Slf4j(topic = "c.c.e.d.Monitor")
public class Monitor {Thread thread;public void start() {thread = new Thread(() -> {while (true) {Thread currentThread = Thread.currentThread();// 执行业务逻辑之前先检查下打断标记,若被打断了,则停止线程,清理资源if (currentThread.isInterrupted()) {// 在这里可以做一些清理资源的工作log.debug("线程被打断了,停止");break;}try {log.debug("执行业务逻辑。。");Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();// 若线程在sleep的时候被打断,则会抛出异常,此时打断标记还是false// 可以手动设置为true,这样下次循环的时候,就会停止currentThread.interrupt();}}});thread.start();}public void stop() {thread.interrupt();}
}
http://www.dtcms.com/a/438548.html

相关文章:

  • 那里网站建设好广东建设信息网三类人
  • 网站建设百度小程序手机版网站怎么做
  • 上海机械网站建设工程网站开发
  • 网站功能说明怎么做为什么我的网站备案通过还是显示未备案
  • 校园门户网站系统建设白帽seo公司
  • nodejs中http模块搭建web服务器
  • 电子书管理与阅读平台BookHeaven
  • 网站建设有哪些分类做网站图片大小不合适怎么调
  • 【LeetCode - 每日1题】接雨水问题1
  • 太原cms建站先做网站还是先申请域名
  • 京东网站设计代码做淘宝客可以有高佣金的网站
  • wdcp创建网站网站建设如何增加二级页面
  • 阿联酋网站后缀星空无限传媒免费观看电视剧
  • 网站建设营销策划方案二次元动漫网站设计方案
  • 专做母婴食品的网站学网站建设要什么
  • Python基础入门例程90-NP90 修正错误的字母
  • 【C++】使用红黑树封装map和set
  • Java 高并发多线程 “基础”面试清单(含超通俗生活案例与深度理解)
  • 什么网站可以做兼职销售群晖可以做网站服务器吗
  • 【LaTeX】 8 LaTeX 表格制作
  • 日常踩雷系列-vscode无法输入中文
  • 巩义网站建设指标点历史文化街区和历史建筑信息平台
  • 打工人日报#20251003
  • Java学习之旅第一季-27:输入与输出
  • 地方网站域名选择嘉伟网络智能建站
  • Leetcode 3695. Maximize Alternating Sum Using Swaps
  • 模型瘦身四剑客:剪枝、量化、低秩分解、知识蒸馏详解
  • php 校园网站设计如何做网站流程图
  • 如何高效下载 YouTube 视频?实用工具推荐
  • 【洛谷】6 道题吃透堆的应用:模板堆、第 k 小、最小函数值等全攻略