java停止线程
2014-04-25 20:45
316 查看
/** * 简单情况下可以使用退出标志来停止线程,但如果线程处于阻塞状态,退出标志无 * 法被及时察觉,则线程就无法停止;因此在使用退出标志的同时也要使用interrupt() * * @author yangww */ public class main_test { public static void main(String[] args) throws InterruptedException { MyThread m1 = new MyThread();//同一个m1只能被启动一次,停止线程并不是说它可以重新启动; m1.start(); Thread.sleep(5000); // System.out.println("使用停止标志终止线程"); // m1.stop = true; // 设置共享变量为true System.out.println("使用interrupt()终止线程"); // interrupt()方法不会中断一个正在运行的线程,但它可以使一个被阻塞的线程抛出一个中断异常,在此异常里,可以设置退出标志,从而使用线程退出; m1.interrupt(); } } class MyThread extends Thread { // 此任务可能被多个线程同时执行,stop作为多线程共享的同步变量。 volatile boolean stop = false;// 退出标志,注:如果线程处于阻塞状态,则退出标志不会被及时更新,线程将无法退出; public void run() { while (!stop) { try { System.out.println("我在执行---"); sleep(1000); } catch (InterruptedException e) { System.out.println("接到InterruptedException,准备更新线程退出标志"); stop = true; // 在异常处理代码中修改共享变量的状态 } } } }
相关文章推荐
- 如何停止JAVA线程(转载)
- java高级多线程编程--关于线程的停止问题
- Java。在Java中停止线程的三种方法
- Java高并发--停止线程和中断线程
- Java——线程的停止
- java中让线程停止的技巧
- Java多线程中停止线程的方法
- [改善Java代码]不使用stop方法停止线程
- JAVA-线程的正确停止方法
- 转: Java安全停止线程方法
- 【Java学习笔记】14:再谈线程的启动和暂时停止
- 停止Java线程,小心interrupt()方法
- java执行Logcat命令时如何停止线程运行
- JAVA之旅(十五)——多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止
- java高级多线程编程--关于线程的停止问题
- JAVA——如何停止线程呢?(interrupt)
- java线程研究---(3)停止Thread
- Java多线程(五)停止线程 interrupt
- Java中停止线程执行的方法
- java线程停止问题