interrupt(),interrupted() 和isInterrupted()使用
2017-10-05 17:34
344 查看
Thread类中的三个方法:
① interrupt():中断本线程
myThread.interrupt();//中断的是调用interrupt()方法的线程
小结:阻塞于wait/join/sleep的线程,中断状态会被清除掉,同时收到著名的InterruptedException;而其他情况中断状态都被设置,并不一定收到异常。
② isInterrupted():检测本线程是否已经中断
myThread.isInterrupted();//判断本线程myThread是否中断
如果已经中断,则返回true,否则false。中断状态不受该方法的影响。
如果中断调用时线程已经不处于活动状态,则返回false。
③ interrupted():检测当前线程是否已经中断
Thread.interrupted();//判断该语句所在线程是否中断
如果已经中断,则返回true,否则false,并清除中断状态。换言之,如果该方法被连续调用两次,第二次必将返回false,除非在第一次与第二次的瞬间线程再次被中断。
如果中断调用时线程已经不处于活动状态,则返回false。
④ isInterrupted()与interrupted()的区别
public void interrupt() // 无返回值 public boolean isInterrupted() // 有返回值 public static boolean interrupted() // 静态,有返回值
① interrupt():中断本线程
myThread.interrupt();//中断的是调用interrupt()方法的线程
小结:阻塞于wait/join/sleep的线程,中断状态会被清除掉,同时收到著名的InterruptedException;而其他情况中断状态都被设置,并不一定收到异常。
② isInterrupted():检测本线程是否已经中断
myThread.isInterrupted();//判断本线程myThread是否中断
如果已经中断,则返回true,否则false。中断状态不受该方法的影响。
如果中断调用时线程已经不处于活动状态,则返回false。
③ interrupted():检测当前线程是否已经中断
Thread.interrupted();//判断该语句所在线程是否中断
如果已经中断,则返回true,否则false,并清除中断状态。换言之,如果该方法被连续调用两次,第二次必将返回false,除非在第一次与第二次的瞬间线程再次被中断。
如果中断调用时线程已经不处于活动状态,则返回false。
public static boolean interrupted() { return currentThread().isInterrupted(true); }
④ isInterrupted()与interrupted()的区别
isInterrupted() interrupted() 实例方法 类方法 判断本线程 判断当前线程 仅读取中断状态 读取并清除中断状态
相关文章推荐
- 多线程中的Interrupt、Interrupted、IsInterrupted 的区分
- interrupt、interrupted 、isInterrupted 区别
- 线程中断,interrupt(),interrupted,isInterrupted()
- interrupt(), isInterrupted(), interrupted() 方法的区别
- 关于interrupt,interrupted和isInterrupted的理解
- thinkinjava21.4.4----java中interrupt和interrupted方法的使用和线程退出的时机
- Java多线程-interrupt、interrupted 、isInterrupted 区别
- interrupt,interrupted和isInterrupted
- Thread中的interrupt(),interrupted(),isInterrupted()方法的详解
- interrupt、interrupted 、isInterrupted 区别
- 对于interrupt,interrupted 和 isInterrupted的一些理解
- 使用interrupt()方法和isInterrupted()方法实现了线程
- Thread类的interrupt,interrupted,isInterrupted方法的理解
- JAVA多线程之interrupt、interrupted、isInterrupted
- Thread类的interrupt(),interrupted(),isInterrupted()
- interrupt、interrupted和isInterrupted的区别
- 多线程——interrupt(),interrupted()和isInterrupted()
- Thread类的interrupt(),interrupted(),isInterrupted()
- JAVA 中interrupt、interrupted和isInterrupted的区别
- java---interrupt、interrupted和isInterrupted的区别