(一)线程管理_3—中断一个线程

(一)线程管理_3—中断一个线程

中断线程

Java提供了中断机制,可以在中断线程的执行,执行的线程会检查中断状态,可以选择忽略中断信号,也可以中断程序

动手实现

public class PrimeGenerator extends Thread {     @Override     public void run() {         long number=1L;         while(true) {             if (isPrime(number)) {                 System.out.printf("Number %d is Prime\n", number);             }             // 检查是否中断             if (isInterrupted()) {                 System.out.printf("The Prime Generator has been Interrupted\n");                 return;             }             number++;         }     }     private boolean isPrime(long number) {         if (number <= 2) {             return true;         }         for (long i = 2; i < number; i++) {             if ((number % 2) == 0) {                 return false;             }         }         return true;     }     public static void main(String[] args) {         Thread task=new PrimeGenerator();         task.start();         try {             Thread.sleep(3000);         } catch (InterruptedException e) {             e.printStackTrace();         }         //中断线程         task.interrupt();     } }

要点

线程属性中保存着一个boolean类型的值,用来标识线程是否已经被中断,当调用interrupt()方法时,将会设置这个属性为true,而调用isInterrupt()方法仅仅返回这个属性的值;

线程对象的 interrupt() 和 isInterrupt()方法的主要区别是: interrupt()方法将会设置为false, isInterrupt()方法仅仅返回这个属性值,推荐使用isInterrupt()方法

转载于:https://my.oschina.net/u/1387007/blog/343253

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109660.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 移动端开发中遇到的坑点及总结(持续更新)

    移动端开发中遇到的坑点及总结(持续更新)前端在移动端开发中遇到的坑点前言一、newDate()在IOS上出现值为NAN的问题二、移动端中input中的文字使用height和line-height等值,文字居中但光标不居中的问题前言本文主要是记录自己在移动端开发中遇到的一些坑点(持续更新)一、newDate()在IOS上出现值为NAN的问题我们常用newDate()去获取时间戳,例如newDate(“2017-08-11…

    2022年6月24日
  • getClass()和getClassLoader()区别 以及ClassLoader详解及用途(文件加载,类加载)

    getClass()和getClassLoader()区别 以及ClassLoader详解及用途(文件加载,类加载)获得ClassLoader的几种方法可以通过如下3种方法得到ClassLoader  this.getClass().getClassLoader(); // 使用当前类的ClassLoader  Thread.currentThread().getContextClassLoader(); // 使用当前线程的ClassLoader  ClassLoader.getSystemCla

    2022年5月4日
  • Java环境变量配置详细步骤

    Java环境变量配置详细步骤引言很多初学Java的小伙伴可能都会听别人说想要编译运行Java程序需要配置环境变量,所以在这里我就手把手教给你如何配置Java环境变量;再多说一句,可能会有小伙伴想:我编译运行Java程序干嘛要配置环境变量呢,直接用IDEA等开发工具不好嘛;其实对于Java初学者,学习Java最好开始不要使用这些开发工具,因为这些工具功能实在是太强大了,并不适合开始学习Java,不利于打好基础;所以开始最好还是老老实实用DOS编译运行Java程序吧!;注:电脑系统是win10下载JDK至于什么是JDK还有到底有

    2022年7月7日
  • 用stringstream读取数据「建议收藏」

    用stringstream读取数据「建议收藏」思想:全部读到一个字符串里,遇到”,”就换成空格,然后用这个字符串构造一个stringstream,用>>读到数组里。stringstream用法分为istream和ostringstream.1std::stringname(“zeta”);2intage=27;34ostringstreamos;5o

    2022年5月3日
  • app如何在应用商店上架(前往应用商店下载相似应用)

    转自https://blog.csdn.net/niezhipeng8/article/details/79103436想要把APP上架到应用市场都要先注册开发者账号才可以。这里的方法包括注册帐号和后期上架及一些需要注意的问题。注意:首次提交应用绝对不能随便删除,否则后面再提交会显示应用APP冲突,会要求走应用认领流程,那个时候就会相当麻烦啦。1、腾讯应用宝腾讯开放平台地址:http…

    2022年4月14日
  • A4988驱动步进电机「建议收藏」

    A4988驱动步进电机「建议收藏」A4988一般用arduino来驱动,我是用STM32F103驱动的。首先推一个网页,https://www.pololu.com/product/1182,上面有比较详细和专业的说明,还有一个关于限制电流使细分更精确的视频讲解,总之,专业。然后推一个datasheet,https://www.pololu.com/file/0J450/a4988_DMOS_microstepping_driver

    2022年6月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号