InterruptedException+interrupt停止线程的疑惑
来源:互联网 发布:网络恐怖主义的成因 编辑:程序博客网 时间:2024/06/05 17:10
问题:利用interrupt+捕捉异常的方式来停止异常,依靠什么判断?以及sleep方法
Thread.interrupted()//是这个方法?这个方法怎么理解?
还是根据控制台出现的InterruptedException这个来判断线程已经停止?
ps:总感觉interrupt+捕捉异常的方式来停止异常不像是真正的停止线程,这样看来倒不如stop来得好,但是stop缺陷就更明显了,会解锁的。
所以停止线程的方法到底是什么?
package Demo1;import java.util.Map;public class Run1 {/** * @param args */public static void main(String[] args) {Thread thread = new Thread("线程1"){ @Overridepublic void run() {// TODO Auto-generated method stubsuper.run();try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println(Thread.currentThread().getName()+":"+this.isInterrupted());e.printStackTrace();}}};thread.start();thread.interrupt();System.out.println(thread.getName()+":"+Thread.interrupted());Thread thread2 = new Thread("线程2"){@Overridepublic void run() {// TODO Auto-generated method stubsuper.run();try {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println(Thread.currentThread().getName()+":"+this.isInterrupted());e.printStackTrace();}}};thread2.start();thread2.interrupt();System.out.println(thread2.getName()+":"+Thread.interrupted());Thread thread3 = new Thread("线程3"){public void run() {for (int i = 0; i < 3; i++) {System.out.println("i="+i);}};};thread3.start();thread3.interrupt();System.out.println(thread3.getName()+":"+thread3.isInterrupted());Map<Thread, StackTraceElement[]> maps = Thread.getAllStackTraces();System.out.println("线程数量:"+maps.size());//打印每个线程的信息for (Thread in : maps.keySet()){System.out.println("===="+in.getId()+":"+in.getName()+":"+in.isInterrupted());}}}
0 0
- InterruptedException+interrupt停止线程的疑惑
- 利用interrupt停止线程
- java线程停止interrupt
- Interrupt如何停止线程
- Thread.interrupt():中断阻塞(的)线程,(跳出阻塞)使其抛出InterruptedException
- java多线程-停止线程interrupt
- 停止Java线程,小心interrupt()
- 线程的中断与InterruptedException
- interrupt、interrupted 、isInterrupted、InterruptedException
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 停止java线程方法,小心interrupt
- 停止Java线程,小心interrupt()方法
- 停止Java线程,小心interrupt()方法
- 软件测试的分类——按测试阶段分类
- java类的成员初始化顺序和初始化块知识
- MVC5 + EF6 入门完整教程 四
- ubuntu下安装QT5.7.1
- 文件描述符与文件指针
- InterruptedException+interrupt停止线程的疑惑
- 【web】HTTP状态返回码介绍,客户端请求服务器端,服务器返回状态码的含义介绍整理。
- delete和truncate的区别
- linux---常用压缩,解压缩命令
- Shell判断字符串包含关系的几种方法
- Dataquest学习总结[4]
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(3)
- 转 matlab卷积函数介绍 conv filter conv2
- ORACLE-- 创建查看权限的账户