java多线程-停止线程interrupt
2014-07-30 21:22
459 查看
stop方法已经过时
如何停止线程?
只有一种,run方法结束
开启多线程运行,运行代码通常是循环结构
只要控制住循环,就可以让run方法结束,也就是线程结束
特殊情况:
当线程处于了冻结状态。
就不会读取到标记。那么线程就不会结束
当没有指定的方式让冻结的线程恢复到运行状态时,这时需要对冻结进行清除
强制让线程恢复到运行状态中来,这样就可以操作标记让线程结束
Thread类提供该方法interrupt();
如何停止线程?
只有一种,run方法结束
开启多线程运行,运行代码通常是循环结构
只要控制住循环,就可以让run方法结束,也就是线程结束
特殊情况:
当线程处于了冻结状态。
就不会读取到标记。那么线程就不会结束
当没有指定的方式让冻结的线程恢复到运行状态时,这时需要对冻结进行清除
强制让线程恢复到运行状态中来,这样就可以操作标记让线程结束
Thread类提供该方法interrupt();
class StopThread implements Runnable { private boolean flag = true; public synchronized void run() { while(flag) { try { wait(); } catch(InterruptedException e) { System.out.println(Thread.currentThread().getName()+"....Exception"); } System.out.println(Thread.currentThread().getName()+"....run"); } } public void changeFlag() { flag = false; } } class StopThreadDemo { public static void main(String[] args) { StopThread st = new StopThread(); Thread t1 = new Thread(st); Thread t2 = new Thread(st); t1.start(); t2.start(); int num = 0; while(true) { if(num++ == 60) { st.changeFlag(); break; } System.out.println(Thread.currentThread().getName()+"........"+num); } System.out.println("over"); } }
相关文章推荐
- java 多线程(1) join() / interrupt() 打断sleep() / stop() / run() / 线程停止的方法
- java多线程(三)停止Java线程,小心interrupt()方法
- Java多线程(五)停止线程 interrupt
- 停止Java线程,小心interrupt()方法
- java多线程之停止线程
- java 多线程(2) 线程的调度和优先级 / sleep() / interrupt() 打断join() / yield() / setPriority()
- Java多线程 线程的停止
- java多线程之停止线程
- java中的interrupt和stop方法——java中线程停止的方法
- java高级多线程编程--关于线程的停止问题
- java高级多线程编程--关于线程的停止问题
- Java多线程(二)——线程中断interrupt
- Java中的多线程(四)之线程的停止
- Java多线程系列--“基础篇”09之 interrupt()和线程终止方式
- 停止Java线程,小心interrupt()方法
- java高级多线程编程--关于线程的停止问题
- JAVA学习第二十八课(多线程(七))- 停止线程和多线程面试题
- java停止线程 interrupt 和守护线程setDaemon
- Java多线程学习笔记—线程停止
- 停止Java线程,小心interrupt()方法