Java中终止某个线程的方法
来源:互联网 发布:商业地产数据分析 编辑:程序博客网 时间:2024/05/29 07:53
Java中终止某个线程的方法
在Java中有专门终止某个线程的API,如stop()和interrupt()。其中stop()由于安全机制的我问题已经被废弃不用,现在就剩下interrupt。其实这个方法并不是一个终断动作的操作,而是一个设置终断状态的操作。它需要和isInterrupted()配合使用。例如:
package org.itcast; public class MyThread04 extends Thread { private boolean stop = false; public MyThread04(String threadName) { super(threadName); } @Override public void run() { for (int j = 0; j < 100; j++) { if(this.isInterrupted()) break; System.out.println(Thread.currentThread().getName()+":"+j); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } public void setStop() { this.stop = true; } //第一个线程 public static void main(String[] args) { MyThread04 t = new MyThread04("辅线程"); t.start(); for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName()+":"+i); } System.out.println("...................."); t.interrupt(); } }
但这个很可能不会终止线程,因为当我们终止这个线程时很可能就会发生InterruptedException异常,当有这个异常发生时我们设置的终断状态也会被清除,所以我们要终断某个线程应采用以下这个方法:
package org.itcast; public class MyThread04 extends Thread { private boolean stop = false; public MyThread04(String threadName) { super(threadName); } @Override public void run() { for (int j = 0; j < 100; j++) { if(stop) break; System.out.println(Thread.currentThread().getName()+":"+j); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } public void setStop() { this.stop = true; } //第一个线程 public static void main(String[] args) { MyThread04 t = new MyThread04("辅线程"); t.start(); for (int i = 0; i < 10; i++) { System.out.println(Thread.currentThread().getName()+":"+i); } System.out.println("...................."); t.setStop(); } }
通过设置一个我们自己的标识来达到终端某个线程。
0 0
- Java中终止某个线程的方法
- Java终止某个线程的方法
- JAVA中 终止线程的方法
- JAVA中终止线程的方法
- Java中安全终止线程的方法
- java终止线程的方法
- Java 终止线程的方法
- java多线程中终止线程的方法的对别
- Java 终止线程方法
- Java 终止线程方法
- Java 终止线程方法
- java 线程终止方法
- 终止java线程的三种方法
- java终止线程的三种方法
- Java终止线程的四种方法
- 终止线程的方法
- 终止线程的方法
- 终止线程的方法
- Android中的WebView组件与JavaScript交互
- windows系统 python numpy scipy 等库的安装
- 第八章动作和动画-组合动作
- 从流程&偏差值提升版本质量_御猫使
- 【Docker】-1-Ubuntu下安装配置Docker
- Java中终止某个线程的方法
- 关于有偿提供拼图响应式后台的通知
- Apache kafka 中zookeeper 的应用
- 关于特斯拉,你真的以为它只是一家做电动车的?
- phpcmsv9多表联合查询分页功能实现 可以自定义查询
- centos7的ip地址.网关,DNS设置和服务的控制
- 年末总结(androidbug)
- varchar和Nvarchar区别
- Eclipse搭建Android开发环境(安装ADT,Android4.4.2)