当前位置: 首页 > news >正文

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======"); } }
http://www.cnnetsun.cn/news/185845.html

相关文章:

  • XHS-Downloader小红书数据采集终极指南:5分钟快速上手教程
  • Vue3-Element-Admin终极解决方案:企业级后台管理系统的完整框架
  • 罗技鼠标宏完整配置教程:快速掌握绝地求生压枪技巧
  • Zotero-SciPDF终极指南:一键获取学术文献PDF的完美解决方案
  • Zotero-SciPDF终极指南:一键获取学术文献PDF的完整解决方案
  • VMware macOS解锁工具终极指南:轻松打造跨平台开发环境
  • 基于Vivado2025的Verilog综合行为全面讲解
  • Hitboxer SOCD清理器:终极游戏按键冲突解决方案
  • 视频PPT智能提取:零基础快速上手完整教程
  • 图解说明常见工控设备USB串口驱动安装流程
  • VMware Unlocker工具使用指南:在Windows和Linux系统上运行macOS虚拟机
  • TranslucentTB色彩选择器深度解析:解锁Windows任务栏个性化新境界
  • iOS自定义终极指南:无需越狱打造专属iPhone体验
  • MAA智能助手:明日方舟游戏自动化管理全解析
  • TranslucentTB 完整使用教程:让 Windows 任务栏瞬间变透明的终极方案
  • Vue3-Element-Admin:5分钟搭建企业级后台系统的终极解决方案
  • Zotero插件终极指南:3步实现PDF自动下载
  • Soundflower终极指南:macOS虚拟音频设备的完整配置与实战应用
  • Jasminum插件生态整合:构建智能科研文献管理平台
  • Vue3 Element Admin:企业级后台管理系统的技术革新与实战指南
  • Zotero文献去重插件完整指南:智能合并重复条目
  • 2025必存!小白秒变创作大神!0成本解锁AI写歌自由,4款顶级免费工具
  • 3分钟学会Zotero自动下载PDF:SciPDF插件完整教程
  • BabelDOC实战指南:智能PDF翻译工具的高效应用技巧
  • 嘉立创PCB布线项目应用:电源模块在EasyEDA中的布局布线
  • 如何轻松解决微信网页版访问限制?wechat-need-web插件全解析
  • 超详细版CubeMX安装与串口下载驱动配置流程
  • 小红书下载器终极指南:3分钟掌握免费无水印下载技巧
  • 如何在macOS上完美运行ComfyUI-Manager?终极兼容性实战指南
  • XHS-Downloader终极指南:轻松下载小红书无水印内容