news 2026/4/28 19:52:12

Java线程终止

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java线程终止

Java中一般使用两种方法来使线程终止的方法,一是标志位的方法,二是中断使用标志位代码实现如下。

// 线程停止的方式:1加标志位;2 中断 class Stop implements Runnable { private boolean flag = true; @Override public void run() { while (flag) { for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + "=====" + i); } } } public void setFlag(boolean flag) { this.flag = flag; } } public class ThreadStop { public static void main(String[] args) { Stop stop = new Stop(); Thread bobi = new Thread(stop, "Bobi"); bobi.start(); for (int i = 0; i < 10; i++) { System.out.println( "i=" + i); // 通过标志位让线程停下来 if (i >= 9) { stop.setFlag(false); } System.out.println(Thread.currentThread().getName() + "=====" + i); } System.out.println(Thread.currentThread().getName() + "=====over======"); } }

使用中断实现线程停止的代码实现如下。

// 线程停止的方式:1加标志位;2 中断 class Stop implements Runnable { private boolean flag = true; @Override public void run() { while (flag) { // 若此时不在main方法中对中断方法做处理的话,线程是停不下来的(虽然main线程停了)。 synchronized (this) { try { wait(); } catch (InterruptedException e) { //e.printStackTrace(); // 强制获取cpu之后会进入这里改变flag的值 flag = false; } } for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + "=====" + i); } } } public void setFlag(boolean flag) { this.flag = flag; } } public class ThreadStop { public static void main(String[] args) { Stop stop = new Stop(); Thread bobi = new Thread(stop, "Bobi"); bobi.start(); for (int i = 0; i < 10; i++) { // 通过标志位让线程停下来 if (i >= 9) { // 强制让bobi这个线程获取cpu,执行完没有完成的操作,而不是一直处于等待状态。 bobi.interrupt(); } System.out.println(Thread.currentThread().getName() + "=====" + i); } System.out.println(Thread.currentThread().getName() + "=====over======"); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 22:25:28

完整指南:轻松实现Windows任务栏透明化美化效果

完整指南&#xff1a;轻松实现Windows任务栏透明化美化效果 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要彻底改变Windows桌面的视…

作者头像 李华
网站建设 2026/4/25 17:21:01

高效科研工作流的Zotero插件组合方案

想要在科研工作中实现科研效率提升和中文文献管理的完美结合吗&#xff1f;通过精心设计的Zotero插件组合&#xff0c;你可以打造一个真正高效的工作流。Jasmine插件作为中文文献管理的基础&#xff0c;与其他插件的协同使用能够让你的文献管理工作事半功倍&#xff01;&#x…

作者头像 李华
网站建设 2026/4/25 20:16:26

XHS-Downloader:解决小红书内容下载难题的智能方案

你是否曾在小红书上看到心仪的图片或视频&#xff0c;却苦于无法快速保存&#xff1f;传统的截图裁剪方式不仅效率低下&#xff0c;还会损失画质和水印干扰。XHS-Downloader作为一款免费开源的小红书内容采集工具&#xff0c;通过AI技术实现了图文视频作品的无缝下载体验&#…

作者头像 李华
网站建设 2026/4/24 5:34:48

Minecraft数据编辑大师课:NBTExplorer让存档修改变得如此简单

Minecraft数据编辑大师课&#xff1a;NBTExplorer让存档修改变得如此简单 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 想要完全掌控你的Minecraft世界吗&#x…

作者头像 李华
网站建设 2026/4/17 15:55:15

VMware解锁工具终极指南:轻松在虚拟机中运行macOS系统

VMware解锁工具终极指南&#xff1a;轻松在虚拟机中运行macOS系统 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 想要在普通PC上体验苹果macOS系统吗&#xff1f;VMware解锁工具Unlocker正是您需要的跨平台兼容解决方案。这款开…

作者头像 李华
网站建设 2026/4/28 1:34:40

5分钟掌握输入法词库转换:告别重复打字烦恼

5分钟掌握输入法词库转换&#xff1a;告别重复打字烦恼 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 还在为更换输入法时需要重新打字而烦恼吗&#xff1f;输入法词…

作者头像 李华