news 2026/6/9 18:09:49

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/6/10 11:26:29

Java线程的两个重要方法

Java线程的两个重要方法&#xff0c;一是守护线程的方法&#xff1b;二是join方法。class Daemon implements Runnable {Overridepublic void run() {while(true) {}} }public class DaemonThread {public static void main(String[] args) {Daemon daemon new Daemon();Threa…

作者头像 李华
网站建设 2026/6/10 11:00:46

快速清理Zotero文献库:强力去重插件完整使用指南

快速清理Zotero文献库&#xff1a;强力去重插件完整使用指南 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero中成堆的重复文献而烦…

作者头像 李华
网站建设 2026/6/10 11:28:31

微信数据安全解决方案:WechatDecrypt使用指南

在数字时代&#xff0c;微信数据安全已成为每个用户关注的焦点。作为一款专业的本地微信数据处理工具&#xff0c;WechatDecrypt提供了完全本地化的解决方案&#xff0c;能够安全高效地处理微信SQLite数据库中的信息记录&#xff0c;从根本上保障用户数据隐私安全。 【免费下载…

作者头像 李华
网站建设 2026/6/9 13:14:00

Jasminum插件协同使用完整指南:构建高效科研文献管理系统

Jasminum插件作为专为中文用户设计的Zotero插件&#xff0c;通过其强大的中文PDF元数据抓取和本地附件匹配能力&#xff0c;为科研文献管理提供了坚实基础。本文将从实际问题出发&#xff0c;探讨如何通过插件协同使用&#xff0c;打造一个真正高效的科研工作流。 【免费下载链…

作者头像 李华
网站建设 2026/6/10 13:03:05

为什么你的KKManager安装总是失败?5个关键步骤彻底解决

为什么你的KKManager安装总是失败&#xff1f;5个关键步骤彻底解决 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager KKManager作为Illusion游戏生态中不可或缺…

作者头像 李华
网站建设 2026/6/9 3:41:31

Jasminum插件技术集成:构建智能化科研文献管理平台

Jasminum插件技术集成&#xff1a;构建智能化科研文献管理平台 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 在当前的科研工作中…

作者头像 李华