java 多线程 停止线程几种方式
2018-02-06 17:45
274 查看
1.Thread.stop();使用该方法停止线程是线程不安全的,会释放被锁的对象,导致对象的值错误。该方法不建议使用。会自动抛出ThreadDeath异常。
2.使用interrupt()方法,该方法只是给线程标记一个停止的状态,并不会真正的停止线程。需要配合this.interrupted()方法判断该线程是否是标记了停止状态,并且得到值后会把线程的状态改为false;
例如:
3.也可以interrupt()配合return停止线程
2.使用interrupt()方法,该方法只是给线程标记一个停止的状态,并不会真正的停止线程。需要配合this.interrupted()方法判断该线程是否是标记了停止状态,并且得到值后会把线程的状态改为false;
例如:
class T1 extends Thread{ @Override public void run(){ super.run(); try { for (int i =0;i<500000;i++) { if (i== 100) this.interrupt(); if (this.isInterrupted()) { System.out.println("线程已停止"); throw new InterruptedException(); } System.out.println("i="+(i+1)); } System.out.println("我在for循环下面"); }catch (InterruptedException ex){ System.out.println("进入cache啊"); ex.printStackTrace(); } } }
3.也可以interrupt()配合return停止线程
class T1 extends Thread{ @Override public void run(){ super.run(); for (int i =0;i<500000;i++) { if (i== 100) this.interrupt(); if (this.isInterrupted()) { System.out.println("线程已停止"); return; } System.out.println("i="+(i+1)); } System.out.println("我在for循环下面"); } }
相关文章推荐
- java停止线程的几种方式
- java多线程之线程创建的几种方式
- java多线程与并发之创建线程的几种方式
- Java多线程编程小结+java中创建线程的的几种方式
- [置顶] Java 多线程 学习笔记(二)停止线程的几种方法
- java多线程总结一: 线程的两种创建方式及优劣比较
- java多线程总结一:线程的两种创建方式及优劣比较
- Java_基础—多线程(匿名内部类实现线程的两种方式和设置名字的方法)
- JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没
- java多线程之-线程创建方式
- java高级多线程编程--关于线程的停止问题
- JAVA·多线程:创建线程的两种方式
- Java多线程学习笔记—线程停止
- java 线程间通信的几种方式
- java多线程总结一: 线程的两种创建方式及优劣比较
- JAVA线程间通信的几种方式
- JAVA多线程之——线程的实现方式
- java多线程总结一:线程的两种创建方式及优劣比较
- java多线程之线程间的通信方式
- java中创建线程的的几种方式