线程如何停止?线程之间如何协作?线程之间的异常如何处理? _
stop 方法虽然可以停止线程但它已经是不建议使用的废弃方法了这一点可以通过 Thread 类中的源码发现stop 源码如下stop 方法是被 Deprecated 修饰的不建议使用的过期方法并且在注释的第一句话就说明了 stop 方法为非安全的方法。原因在于它在终止一个线程时会强制中断线程的执行不管run方法是否执行完了并且还会释放这个线程所持有的所有的锁对象。这一现象会被其它因为请求锁而阻塞的线程看到使他们继续向下执行。这就会造成数据的不一致。比如银行转账从A账户向B账户转账500元这一过程分为三步第一步是从A账户中减去500元假如到这时线程就被stop了那么这个线程就会释放它所取得锁然后其他的线程继续执行这样A账户就莫名其妙的少了500元而B账户也没有收到钱。这就是stop方法的不安全性。设置标志位如果线程的run方法中执行的是一个重复执行的循环可以提供一个标记来控制循环是否继续javaclass FlagThread extends Thread { // 自定义中断标识符 public volatile boolean isInterrupt false; Override public void run() { // 如果为 true - 中断执行 while (!isInterrupt) { // 业务逻辑处理 } } }但自定义中断标识符的问题在于线程中断的不够及时。因为线程在执行过程中无法调用 while(!isInterrupt) 来判断线程是否为终止状态它只能在下一轮运行时判断是否要终止当前线程所以它中断线程不够及时比如以下代码javaclass InterruptFlag { // 自定义的中断标识符 private static volatile boolean isInterrupt false; public static void main(String[] args) throws InterruptedException { // 创建可中断的线程实例 Thread thread new Thread(() - { while (!isInterrupt) { // 如果 isInterrupttrue 则停止线程 System.out.println(thread 执行步骤1线程即将进入休眠状态); try { // 休眠 1s Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(thread 执行步骤2线程执行了任务); } }); thread.start(); // 启动线程 // 休眠 100ms等待 thread 线程运行起来 Thread.sleep(100); System.out.println(主线程试图终止线程 thread); // 修改中断标识符中断线程 isInterrupt true; } }输出我们期望的是线程执行了步骤 1 之后收到中断线程的指令然后就不要再执行步骤 2 了但从上述执行结果可以看出使用自定义中断标识符是没办法实现我们预期的结果的这就是自定义中断标识符响应不够及时的问题。interrupted中断这种方式需要在while循环中判断使用使用 interrupt 方法可以给执行任务的线程发送一个中断线程的指令它并不直接中断线程而是发送一个中断线程的信号把是否正在中断线程的主动权交给代码编写者。相比于自定义中断标识符而然它能更及时的接收到中断指令如下代码所示javapublic static void main(String[] args) throws InterruptedException { // 创建可中断的线程实例 Thread thread new Thread(() - { while (!Thread.currentThread().isInterrupted()) { System.out.println(thread 执行步骤1线程即将进入休眠状态); try { // 休眠 1s Thread.sleep(1000); } catch (InterruptedException e) { System.out.println(thread 线程接收到中断指令执行中断操作); // 中断当前线程的任务执行 break; } System.out.println(thread 执行步骤2线程执行了任务); } }); thread.start(); // 启动线程 // 休眠 100ms等待 thread 线程运行起来 Thread.sleep(100); System.out.println(主线程试图终止线程 thread); // 修改中断标识符中断线程 thread.interrupt(); }输出

相关新闻

还在用普通铝板?它已过时了!

还在用普通铝板?它已过时了!

当建筑的灵魂不再满足于平面的单调,曲面美学已成为现代地标的核心语言。那些生硬、拼接痕迹明显的普通铝板,早已无法承载设计师的宏大构想。是时候告别平庸,拥抱真正的曲面艺术了——以异型铝单板、单曲铝单板、双曲铝单板为代表的定制化解决…

2026/7/1 8:58:23阅读更多 →
博弈论总结(20260201)

博弈论总结(20260201)

ICG 游戏若满足以下条件:游戏由两个人参与,两人轮流做出决策且必定对自己最有利;当有一人无法做出决策时游戏结束,无法做出决策的人输,且无论两人如何决策,游戏都一定会结束(不会出现平局&#…

2026/7/1 8:53:22阅读更多 →
ServerPackCreator:现代化Minecraft服务器资源包自动化构建解决方案

ServerPackCreator:现代化Minecraft服务器资源包自动化构建解决方案

ServerPackCreator:现代化Minecraft服务器资源包自动化构建解决方案 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/ServerP…

2026/7/1 8:53:22阅读更多 →
终极解决方案:一站式搞定Windows和Office激活难题

终极解决方案:一站式搞定Windows和Office激活难题

终极解决方案:一站式搞定Windows和Office激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统未激活的水印烦恼吗?Office软件的功能限制让你工作效…

2026/7/1 10:08:35阅读更多 →
区块链跨链互通技术

区块链跨链互通技术

区块链跨链互通技术:打破孤岛的新纪元 区块链技术自诞生以来,已催生了众多独立运行的链上生态,但链与链之间的数据与资产隔离问题逐渐成为行业发展的瓶颈。跨链互通技术应运而生,旨在实现不同区块链网络间的无缝交互,…

2026/7/1 10:08:35阅读更多 →
硬件设计零星知识点:05 半导体制冷器(TEC)工作原理和选型方法

硬件设计零星知识点:05 半导体制冷器(TEC)工作原理和选型方法

文章目录一、简介二、关键技术指标2.1 尺寸2.2 电气物理指标2.2.1 Qcmax(ΔT0)2.2.2 ΔTmax(Qc0)2.2.3 Imax(I△T max)2.2.4 Vmax(V△T max)2.2.5 Module Resistance三、选型方法一、…

2026/7/1 10:08:35阅读更多 →
企业级AI集成:MuleSoft与LangChain双引擎架构实战

企业级AI集成:MuleSoft与LangChain双引擎架构实战

1. 项目概述:当企业级集成遇上大模型,谁在真正指挥这场智能交响? 我在做企业级AI落地咨询的第七年,亲眼见过太多团队把LLM当成万能胶水——往CRM里塞一个ChatGPT API,就敢叫“AI销售助手”;在ERP旁边搭个La…

2026/7/1 10:08:35阅读更多 →
Motorola ROKR E6 Flash Tool — 技术文档

Motorola ROKR E6 Flash Tool — 技术文档

Motorola ROKR E6 Flash Tool 技术文档设备型号: Motorola ROKR E6 (2006) 项目版本: E6 Flash Tool V5 / GUI Edition 状态: 已验证 & 测试通过 参考: OpenEZX / moto-boot-usb硬件架构双处理器设计AP (应用处理器): Intel XScale PXA270 312MHz地址空间: 0x00000000–0x…

2026/7/1 10:08:35阅读更多 →
XUnity.AutoTranslator完整指南:打破语言障碍,畅玩全球Unity游戏

XUnity.AutoTranslator完整指南:打破语言障碍,畅玩全球Unity游戏

XUnity.AutoTranslator完整指南:打破语言障碍,畅玩全球Unity游戏 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因为语言障碍而错过精彩的日文、英文或其他外语游戏&…

2026/7/1 10:03:34阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/1 4:42:14阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/1 5:19:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →