JAVA多线程编程之判断终止状态Interrupted和isInterrupted的区别
来源:互联网 发布:网络诈骗青少年案例 编辑:程序博客网 时间:2024/06/06 00:32
一基本概念:
1.Interrupted 是判断调用这行代码的线程是否中断,,重复调用这个方法会清除中断状态,换句话说连续调用2次该方法即使第一次返回true【中断】第二次也会返回false。
2.this.isInterrupted它是测试线程是否已经中断,测试Thread对象是否中断状态,但不清除状态标识。
二代码示例:
示例一:
自定义线程类:
public class MyThread extends Thread{
@Override
public void run(){
super.run();
for (int i=0;i<500000;i++){
System.out.println("i="+(i+1));
}
}
}
运行类Run.java
public class run{
public static void main(String[ ] args){
try{
MyThread thread=new MyThread();
thread.start();
Thread.sleep(1000);
thread.interrupt();
System.out.println("是否中断1?="+thread.interrupted());
System.out.println("是否中断1?="+thread.interrupted());
}catch(InterruptedException e){
System.out prinln("main catch");
e.printStackTrace();
}
System.out prinln("end!");
}
}
运行结果为:
证明:interrupted()是判断main线程是否中断,它是main线程调用的方法;
示例二:
Run2.java
public class run2{
public static void main(String[ ] args){
Thread.currentThread.interrupt(); //中断线程
System.out.println("是否中断1?="+Thread.interrupted());
System.out.println("是否中断1?="+Thread.interrupted());
System.out prinln("end!");
}
}
运行结果:
证明:interrupted()连续连词调用 第二次为flase 每次调用清除中断状态。
示例三: Run3.java
public class run3{
public static void main(String[ ] args){
try{
MyThread thread=new MyThread();
thread.start();
Thread.sleep(1000);
thread.interrupt();
System.out.println("是否中断1?="+thread.isInterrupted());
System.out.println("是否中断1?="+thread.isInterrupted());
}catch(InterruptedException e){
System.out prinln("main catch");
e.printStackTrace();
}
System.out prinln("end!");
}
}
运行结果为:
证明:isInterrupted测试Thread对象是否已经中断状态,但不清除中断标志。
- JAVA多线程编程之判断终止状态Interrupted和isInterrupted的区别
- 【Java】interrupt、interrupted和isInterrupted的区别
- JAVA interrupt、interrupted和isInterrupted的区别
- java---interrupt、interrupted和isInterrupted的区别
- interrupted()和isInterrupted()的区别
- interrupted() 和 isInterrupted() 的区别
- JAVA多线程之interrupt、interrupted、isInterrupted
- Java Thread类的interrupted和isInterrupted的区别
- java isInterrupted 和interrupted方法区别
- java isInterrupted()和interrupted()
- interrupt(),interrupted() 和 isinterrupted() 的区别
- interrupt、interrupted和isInterrupted的区别
- interrupt、interrupted和isInterrupted的区别
- interrupt、interrupted和isInterrupted的区别
- JAVA多线程之中断机制(stop()、interrupted()、isInterrupted())
- JAVA多线程之中断机制(stop()、interrupted()、isInterrupted())
- java中interrupted()和isInterrupted
- 多线程中 interrupt、interrupted 、isInterrupted 区别
- iterm2 使用rzsz
- Android开发关于MD5和Base64加密的代码帮助类
- neural networks学习笔记(一)
- flask 流内容
- C# 处理多媒体的公共类
- JAVA多线程编程之判断终止状态Interrupted和isInterrupted的区别
- mysql查询主键
- swift中按钮UIButton的文字竖直显示
- C++ Virtual函数
- python kmp算法简单实现
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- C# 序列化帮助类
- 学习OpenCV---阈值化
- Linux清理cached缓存