本篇文章帮大家学习java 如何中断线程,包含了Java 如何中断线程使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。

以下实例演示了如何使用interrupt()方法来中断线程并使用 isInterrupted() 方法来判断线程是否已中断:public class Main extends Object

implements Runnable {

public void run() {

try {

System.out.println("in run() - 将运行 work2() 方法");

work2();

System.out.println("in run() - 从 work2() 方法回来");

}

catch (InterruptedException x) {

System.out.println("in run() - 中断 work2() 方法");

return;

}

System.out.println("in run() - 休眠后执行");

System.out.println("in run() - 正常离开");

}

public void work2() throws InterruptedException {

while (true) {

if (Thread.currentThread().isInterrupted()) {

System.out.println("C isInterrupted()=" + Thread.currentThread().isInterrupted());

Thread.sleep(2000);

System.out.println("D isInterrupted()=" + Thread.currentThread().isInterrupted());

}

}

}

public void work() throws InterruptedException {

while (true) {

for (int i = 0; i

int j = i * 2;

}

System.out.println("A isInterrupted()=" + Thread.currentThread().isInterrupted());

if (Thread.interrupted()) {

System.out.println("B isInterrupted()=" + Thread.currentThread().isInterrupted());

throw new InterruptedException();

}

}

}

public static void main(String[] args) {

Main si = new Main();

Thread t = new Thread(si);

t.start();

try {

Thread.sleep(2000);

}

catch (InterruptedException x) {

}

System.out.println("in main() - 中断其他线程");

t.interrupt();

System.out.println("in main() - 离开");

}

}

运行结果:in run() - 将运行 work2() 方法

in main() - 中断其他线程

in main() - 离开

C isInterrupted()=true

in run() - 中断 work2() 方法

java线程interrupt用法_Java 如何中断线程相关推荐

  1. java线程interrupt用法_Java线程中interrupt那点事 | 学步园

    1.先看一下例子程序: import java.io.IOException; import java.net.ServerSocket; import javax.rmi.CORBA.Tie; /* ...

  2. java终端线程_java多线程-中断线程

    大纲: java线程的中断原则 中断相关方法 中断实例 一.java线程中断原则 java中断是一种协作机制,每一个线程的中断都由线程自己处理,其他线程只是给要中断的线程一个中断标志. 二.相关方法 ...

  3. java线程池并发_Java并发教程–线程池

    java线程池并发 Java 1.5中提供的最通用的并发增强功能之一是引入了可自定义的线程池. 这些线程池使您可以对诸如线程数,线程重用,调度和线程构造之类的东西进行大量控制. 让我们回顾一下. 首先 ...

  4. java多线池_java多线程之线程池

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  5. java中实现线程的方法_Java中实现线程的方法

    Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用? 第一种:继承Thread类 new Thread(){}.start();这表示调 ...

  6. java new thread参数_java开启新线程并传参的两种方法

    一.继承Thread类 步骤: 1):定义一个类A继承于Java.lang.Thread类. 2):在A类中覆盖Thread类中的run方法. 3):我们在run方法中编写需要执行的操作:run方法里 ...

  7. java线程池教程_Java基础教程——线程池

    启动新线程,需要和操作系统进行交互,成本比较高. 使用线程池可以提高性能-- 线程池会提前创建大量的空闲线程,随时待命执行线程任务.在执行完了一个任务之后,线程会回到空闲状态,等待执行下一个任务.(这 ...

  8. java中extends用法_JAVA的extends用法

    理解继承是理解面向对象程序设计的关键.在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类).在Java中不允许多继承. (1)继承 cla ...

  9. cal java中的用法_Java中static用法

    Java中static用法 转自 http://blog.pfan.cn/sword2008/13772.html 一.static 请先看下面这段程序: public class Hello{ pu ...

最新文章

  1. jzoj3859-孤独一生【dp,树状数组】
  2. 采用光线跟踪绘制场景 c++_光线追踪的相干性聚集:硬件光线追踪的优势
  3. 计算机组成原理的实验节拍,一种计算机组成原理的实验装置
  4. bzoj 3172: [Tjoi2013]单词 AC自动机
  5. html里面怎么引别的页面_如何在一个html文件中引入另一个html文件?
  6. Android内核开发:从源码树中删除出厂的app应用
  7. 初尝Mcafee之CEE企业版概述【01】
  8. RocketMQ 5.0 POP 消费模式探秘
  9. 可疑的 Box 操作
  10. De-Sim示例分析(三)SIR传染病模型
  11. 目标检测标签分配之 OTA 和 SimOTA 细节学习
  12. 如何通过组策略来缓解打印机后台处理程序漏洞CVE-2021-34527?
  13. (14)[驱动开发]配置环境 VS2019 + WDK10 写 xp驱动
  14. Python常用配置文件ini、json、yaml读写总结
  15. react+express +materialui模板
  16. 【报错排查】MAC系统升级后项目无法启动踩坑
  17. STM32中断优先级概念
  18. Cambridge 4 TEST1
  19. Sentinel整合Dubbo限流实战
  20. Kotlin let with run apply also filter if常规用法笔记

热门文章

  1. 永远要跟比你更成功的人在一起
  2. php求数组交集的自定义函数,php数组交集函数
  3. 此时无足够的可用内存,无法满足操作的预期要求,可能是由于虚拟地址随便造成的。请稍候重试。 .
  4. javax.script.ScriptException: ReferenceError: xxx is not defined in eval
  5. Docker中搭建FastDFS文件系统(多图)
  6. Android Runnable与Handler和Thread的使用,Handler构造方法弱引用实现
  7. Android 自定义字体,设置字体
  8. Android 柱状图
  9. [HAOI2016]食物链
  10. python opencv3 轮廓检测