java停止线程 interrupt 和守护线程setDaemon
来源:互联网 发布:如何导入sql数据库 编辑:程序博客网 时间:2024/09/21 06:35
package day12;/*stop方法已经过时。如何停止线程?只有一种,run方法结束。开启多线程运行,运行代码通常是循环结构。只要控制住循环,就可以让run方法结束,也就是线程结束。特殊情况:当线程处于了冻结状态。就不会读取到标记。那么线程就不会结束。当没有指定的方式让冻结的线程恢复到运行状态是,这时需要对冻结进行清除。强制让线程恢复到运行状态中来。这样就可以操作标记让线程结束。Thread类提供该方法 interrupt(); */public class ThreadDemo7 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubmenth_2();}public static void menth_2(){ThreadDemo2 td=new ThreadDemo2();Thread t1=new Thread(td);Thread t2=new Thread(td);//s守护线程 主线程是前台线程 当前台线程结束的时候后台线程也结束 t1.setDaemon(true);t2.setDaemon(true);t1.start();t2.start();int num=0;while(true){num++;if(num==100){break;}System.out.println(Thread.currentThread().getName()+" main "+num);}System.out.println("ovwer");}public static void menth_1(){ThreadDemo td=new ThreadDemo();Thread t1=new Thread(td);Thread t2=new Thread(td);t1.start();t2.start();int num=0;while(true){num++;if(num==100){t1.interrupt();t2.interrupt();break;}System.out.println(Thread.currentThread().getName()+" main "+num);}System.out.println("ovwer");}}//2class ThreadDemo2 implements Runnable{private boolean flag=true;public void run(){while(flag){System.out.println(Thread.currentThread().getName()+" run"); }}public void changeflag(){flag=false;}}//1class ThreadDemo implements Runnable{private boolean flag=true;public synchronized void run(){while(flag){try {this.wait(); //当线程进入到等待状态的时候 就没有办法结束线程 这个时候i就要用到 强制结束线程 的方法 interrupt 强制结束线程 在catch中处理异常} catch (InterruptedException e) {// TODO: handle exceptionSystem.out.println(Thread.currentThread().getName()+" Exception");flag=false;}System.out.println(Thread.currentThread().getName()+" run"); }}public void changeflag(){flag=false;}}
0 0
- java停止线程 interrupt 和守护线程setDaemon
- 线程间通信 等待唤醒机制 wait notify notifyAll lock Condition唤醒 停止线程interrupt 守护线程setDaemon join yield
- 守护线程java thread setDaemon
- java的守护线程setDaemon
- java线程停止interrupt
- java个人学习笔记20(wait()和sleep()区别+停止线程+interrupt()+join()+setDaemon()+setPriority()+多线程常见写法)
- 守护线程 setDaemon
- 守护线程setdaemon()
- 守护线程setDaemon(true)
- java多线程-停止线程interrupt
- 停止Java线程,小心interrupt()
- JAVA——守护线程或用户线程(setDaemon)
- Thread.setDaemon() --守护线程
- 守护线程------------------------Thread.setDaemon详解
- Thread.setDaemon守护线程详解
- java的调度、优先级setPriority、yield、jion和守护线程setDaemon
- 利用interrupt停止线程
- Interrupt如何停止线程
- 第九周项目一
- 杭电1856More is better(并查集)
- BFS(模板)
- C++:private继承与public继承
- C++ struct与class的区别
- java停止线程 interrupt 和守护线程setDaemon
- Java Card CAP 文件组件分析 09—— Reference Location Component
- ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.6
- ACM-尼姆博弈之John——hdu1907
- [SPOJ FASTFLOW] Fast Maximum Flow [最大流]
- Linux服务器程序性能测试的一些思考
- quick-select
- [置顶] oracle 分库分表(sharding)
- C语言 高精度加法