优雅关闭线程实践

前言

在多线程编程中会需要动态创建线程来执行任务,在完成后释放该线程,使用Excuotrs创建的线程,提供了shutDown方法进行线程的关闭,但使用原生的Thread和Runable创建的线程池,其stop、destory方法都已经被标为Deprecate,那究竟该如何关闭线程?

实现逻辑

1、如果线程能正常执行完,执行结束后线程自动关闭,无须特别处理

2、否则需要使用一个标记如下running来控制并跳出线程循环执行体,完成线程的自动关闭

3、如果线程循环执行体存储阻塞,则在设置running变量,还需要通过interrupt中断阻塞,使其能够跳出线程循环执行体,完成线程的自动关闭。

下面是供参考的代码逻辑:

public class BgpLsLinkMsgHandlerThread extends Thread { private volatile boolean running = true; @Override public void run() { while (running) { try { BgplsMsg message = queue.take(); bgpLsMsgHandler.handle(message); } catch (Exception e) { logger.error(“BgpLsLinkMsgHandlerThread handler exception.”, e); } } } public void handleMessage(BgplsMsg message) { try { queue.put(message); } catch (InterruptedException e) { logger.error(this, e); } } public int queueSize() { return queue.size(); } /** * 优雅终止线程 */ public synchronized void termination() { this.running = false; this.interrupt(); }}

方法termination在修改标记变量running后,调用了中断函数interrupt,避免程序阻塞导致实际上并未关闭线程。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月15日
下一篇 2022年6月15日

相关推荐

  • 单核多核性能称王!英特尔i9-13900K首个跑分出炉,AMD无力回天

    根据今天最新的消息称,英特尔第13代酷睿i9全新型号首次曝光,跑分已经出炉了,无论是单核还是多核成绩亮眼。 如下图所示,这款处理器型号为i9-13900K跑分首次出现在Geekbe…

    2022年7月12日
  • Python Queue 入门

    Queue 简介 Queue 叫队列,是数据结构中的一种,基本上所有成熟的编程语言都内置了对 Queue 的支持。 Python 中的 Queue 模块实现了多生产者和多消费者模型…

    2022年7月10日
  • AMD用户快升级:新BIOS解决大问题,还让老主板支持新CPU

    从Ryzen处理器上市以来,AMD在芯片组的功能更新上,就和过去有很大的不同。现在各家AMD主板的更新都基于AMD发布的微代码而来,然后自己在根据主板的不同进行相应的扩展。这样基本…

    2022年6月16日
  • 微程之家智慧景区运营解决方案

    进入互联网时代,各个景区都部署了线上渠道获客售票,经历数年发展取得了不错的成绩,但也面临着许多痛点。 景区线上运营有哪些痛点? 1、获客成本高 随着中文互联网的人口红利消失,景区的…

    2022年8月12日
  • 中韩明星同框合影,大气的中国美,不管女星男星,都赢麻了

    娱乐是个圈儿。 即使国籍不同,但只要在这个圈里,就总会有碰到的时候。比如中、韩两国的艺人,便有很多同框出镜被记录下的瞬间。 我们先来说女星“斗艳”。 金喜善曾被称为“韩国第一美女”…

    2022年5月12日
  • 微软27年终落幕!IE既输给了时代,也输给了时间

    谁也没想到就在今天,我们亲眼目睹了一代巨头IE浏览器退出历史舞台。 微软Edge浏览器已发文告别,表示Edge浏览器将接力IE继续走下去。 不得不说,虽然曾经的IE浏览器被不少人诟…

    2022年6月19日
  • 最小二乘法公式推导过程

    假设现在有n对坐标系中的点 现在要做k阶多项式拟合,多项式函数如下 将已知的观测点数据代入上述公式得到如下n组等式: …… 最小二乘法(又称最小平方法)是一…

    2022年6月28日
  • 英特尔千元游戏CPU杀手锏:酷睿i5-12490F降价

    英特尔推出的这款CPU是i5系列12代的六核12线程, i5-12490F有一个特别之处是一款中国大陆地区特供的CPU,用接地气的话就是英特尔为中国大陆地区的游戏玩家打造的定制款C…

    2022年6月26日
  • 鸡中翅除了炸,用我教你的这个方法,一碟都归你

    鸡中翅、鸡腿的日常吃法,相信大家都不陌生。如果不想自己在家烹饪,都会去到麦当当、肯德德都会买到炸鸡翅来吃。吃多了难免会觉得不适合自己的口味了…… 今天就由喜欢下厨的伟兴手把手教你制…

    2022年8月15日
  • 禁用/开启 Windows系统3D加速

    前言 有的老游戏(主要是2D游戏)在新系统中运行,可能出现许多问题,如黑屏、报错、闪退、速度异常等! 这时候只需要禁用3D加速,大多即可正常运行。 当然,也可以通过这个方法,来限制…

    2022年6月22日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息