JUC中的设计模式

news/2024/5/20 6:11:31 标签: 设计模式, juc, 多线程

文章目录

  • 1. 终止模式之两阶段终止模式

1. 终止模式之两阶段终止模式

需求:用一个线程每两秒检测***状态,当不想检测时,用另一个线程将其停止
在这里插入图片描述

在一个线程 T1 中如何“优雅”终止线程 T2?这里的【优雅】指的是给 T2 一个料理后事的机会。
错误思路:

  • 使用线程对象的 stop() 方法停止线程:stop 方法会真正杀死线程,如果这时线程锁住了共享资源,那么当它被杀死后就再也没有机会释放锁,其它线程将永远无法获取锁
  • 使用 System.exit(int) 方法停止线程:目的仅是停止一个线程,但这种做法会让整个程序都停止

实现方式

  1. 利用isInterrupted实现
    口述:需求是每两秒就检测,而且还可以随时停止,我们定义一个检测方法和停止方法,在这个检测方法中开启一个新的线程来完成检测逻辑,停止方法我们调用检测方法中这个线程的interrupt方法;检测方法中我们需要判断线程是否执行了interrupted,如果执行了的话表示我们要停止检测了,所以berak结束,当没有interrupted的话表示现在还需要检测,然后就检测然后sleep两秒,如果在睡眠中执行了interrupted方法表示我们要停止的话,sleep中的线程在调用interrupted方法会将它的值设置为false而且会抛异常,我们在catch里面再执行一次interrupted方法将其设置为true,那么在下次判断的时候因为现在isinterrupted的值就变为true了,就会进入if内然后break。
    interrupt 可以打断正在执行的线程,无论这个线程是在 sleep,wait还是join(isInterrupted为flase)还是正常运行(isInterrupted为true)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

http://www.niftyadmin.cn/n/5063563.html

相关文章

【mysql】—— 复合查询

前言: 在前面我已经讲解的mysql表的查询都是对一张表进行查询,在实际开发中这远远不够。因此,本期我将带大家学习的是关于 “ 复合查询” 的相关知识!!! 目录 (一)基本查询回顾 &a…

基于大语言模型的智能问答系统应该包含哪些环节?

一个完整的基于 LLM 的端到端问答系统,应该包括用户输入检验、问题分流、模型响应、回答质量评估、Prompt 迭代、回归测试,随着规模增大,围绕 Prompt 的版本管理、自动化测试和安全防护也是重要的话题,本篇文章就来探索下这个过程…

【CVPR 2023】DSVT: Dynamic Sparse Voxel Transformer with Rotated Sets

文章目录 开场白效果意图 重点VoxelNet: End-to-End Learning for Point Cloud Based 3D Object DetectionX-Axis DSVT LayerY-Axis DSVT Layer Dynamic Sparse Window AttentionDynamic set partitionRotated set attention for intra-window feature propagation.Hybrid wind…

基于SSM的医院住院综合服务管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

JavaScript解密日记6

引言: 在从事JAVA工作的第五个年头,突然开始对js加密js解密感兴趣。开始了探索的路程 1. JavaScript基础知识: JavaScript是一种用于Web开发的脚本语言,它包括以下基础概念: 变量(Variables)…

Pytorch基础:Tensor的transpose方法

相关阅读 Pytorch基础https://blog.csdn.net/weixin_45791458/category_12457644.html?spm1001.2014.3001.5482 在Pytorch中,transpose是Tensor的一个重要方法,同时它也是一个torch模块中的一个函数,它们的语法如下所示。 Tensor.transpo…

房子再小,也要有自己的装修设计!福州中宅装饰,福州装修

小空间 也要有好设计 小户型的房子现在越来越受欢迎了 但是面积不大的小户型 怎么装修才能更适合居住呢? 那么多的东西又应该如何收纳呢? 白色系装修 采用白色系为装修的主色调 白色在装修上能让视觉上显得更宽敞 让小面积的房子 变得更多简洁大…

28272-2012 米制超细牙螺纹 系列和基本尺寸

声明 本文是学习GB-T 28272-2012 米制超细牙螺纹 系列和基本尺寸. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了米制超细牙螺纹的基本牙型、直径与螺距系列和基本尺寸。 本标准适用于精密仪器和电子设备等领域的螺纹连接。 2…