首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Java 中 interrupted 和 isInterrupted 方法的区别?

1、interrupted()方法 interrupted 是一个 Thread 静态方法,用于了解当前线程是否被中断。...重要提示:如果 Thread.interrupted() 方法返回 true,那么该方法会自动将该线程的中断标志设置为 false。...因此,如果在一个线程的run方法中多次调用 interrupted 方法的话,第一次调用返回true,后续调用都会返回false。...需要注意的是,与 interrupted 方法不同,isInterrupted 不会改变线程的中断状态。 实际使用时,可以根据您的需求选择这两种方法之一。...例如,在编写一个多线程程序的开发中,可以通过调用 interrupted 方法使用线程自己检查是否被中断,并根据结果采取相应措施。

12950

interrupt interrupted isInterrupted 方法对比、区别与联系 多线程中篇(八)

interrupt interrupted isInterrupted 是三个“长相”非常类似的方法。...中断标志位 通过上面的分析,我们可以很清楚的看得出来,中断机制的核心就是借助于中断标志位 而 interrupt interrupted isInterrupted三个方法其实就是对于中断标志位的操作...public static boolean interrupted() 测试当前线程是否已经中断。 线程的中断状态 由该方法清除。...中断标志位将会根据参数ClearInterrupted的值决定是否会被清除 这是一个实例方法,所以需要依赖于某个实例对象 再仔细看看静态方法interrupted ?...() 则是相当于getter  and  setter,并且,是针对于当前线程的 总结 对于三个方法interrupt interrupted isInterrupted,重点是要了解中断标志位

46920

怎么查看线程的状态及interrupt优雅的关闭线程和interrupt()、interrupted()、isInterrupted()的作用以及区别在哪?

interrupt()、interrupted()、isInterrupted()的作用以及区别在哪?...,如果线程在waiting 会抛出InterruptedException,线程自己决定要不要结束,异常会触发复位 isInterrupted()获取线程的中断标记,但是不会进行复位操作 interrupted...()获取线程的中断标记,并且主动执行复位操作 interrupted()示例如下: public static void main(String[] args) throws InterruptedException...{ Thread.currentThread().interrupt(); System.out.println(Thread.interrupted()); //返回true,当前线程被interrupt...System.out.println(Thread.currentThread().isInterrupted()); //获取线程的interrupt状态,本来应该是true,但是interrupted

30830

怎么查看线程的状态及interrupt优雅的关闭线程和interrupt()、interrupted()、isInterrupted()的作用以及区别在哪?

interrupt()、interrupted()、isInterrupted()的作用以及区别在哪?...,如果线程在waiting 会抛出InterruptedException,线程自己决定要不要结束,异常会触发复位 isInterrupted()获取线程的中断标记,但是不会进行复位操作 interrupted...()获取线程的中断标记,并且主动执行复位操作 interrupted()示例如下: public static void main(String[] args) throws InterruptedException...{ Thread.currentThread().interrupt(); System.out.println(Thread.interrupted()); //返回true,当前线程被interrupt...System.out.println(Thread.currentThread().isInterrupted()); //获取线程的interrupt状态,本来应该是true,但是interrupted

44830

【Java 语言】Java 多线程 一 ( 线程基础 : 线程启动 | 线程停止 | 线程暂停 | 线程优先级 | 守护线程)

() 方法测试 interrupted () 方法测试1 : 测试 interrupted 方法的判断是否已经中断的效果; -- 测试代码 :  public class InterruptedDemo1...() = " + thread.interrupted()); System.out.println("第二次 : thread.interrupted() = " + thread.interrupted...() = " + Thread.interrupted()); System.out.println("第二次 : thread.interrupted() = " + Thread.interrupted...执行结果 :  第一次 : thread.interrupted() = true 第二次 : thread.interrupted() = false -- 3....对比 interrupted() 方法 : interrupted() 方法反应的是真实的线程运行状态, 线程正在运行, 那么返回 false, 如果线程没有运行, 返回 true; -- 5.

3.2K20
领券