Java——线程的停止
来源:互联网 发布:硕鼠youtube下载器mac 编辑:程序博客网 时间:2024/06/07 07:41
/*线程的停止:stop方法已经过时了,那么只能是当线程的任务代码执行完线程自然结束任务代码中通常都有循环,所以只要让循环停下来,线程就能停下来方法:定义一个变量,然后控制循环stop():已过时。该方法具有固有的不安全行,用Thread.stop来终止线程将释放它已经锁定的所有监视器(作为沿堆栈向上传播的未检查ThreadDeath异常的一个自然后果),如果以前受这些监视器保护的任何对象都处于一种不一致的状态,则损坏的对象将其对其他程序可见,这有可能导致任意的行为,stop的许多实用都应由只修改某些变量以指示目标线程应该停止运行的代码来取代,目标线程应定期检查该变量,并且如果该变量指示它要停止运行,则从运行方法依次返回,如果目标线程等待很长时间(例如基于一个条件变量),则应使用interrupt方法来中断该等待*/class Demo implements Runnable{ boolean flag = true; public synchronized void run(){ while(flag){ //如果线程一上来就等待,程序将结束不了 //线程进入等待状态,为了让线程结束,只能强制结束线程的等待状态 try{ wait(); } catch(InterruptedException e){ e.printStackTrace(); flag = false; } System.out.println(Thread.currentThread().getName()+"...Hello World!"); } }}class test{ public static void main(String[] args){ Demo demo = new Demo(); Thread t1 = new Thread(demo); Thread t2 = new Thread(demo); t1.start(); t2.start(); try{Thread.sleep(20);}catch(InterruptedException e){e.printStackTrace();} int i = 1; while(true){ if(i++==500){ //demo.flag = false; //当调用interrupt时,线程就会发生异常,异常后将flag改为false,线程就能结束 t1.interrupt(); t2.interrupt(); break; } } }}
阅读全文
2 0
- Java——线程的停止
- java线程学习3——线程的停止
- java线程学习3——线程的停止
- Java 线程的停止
- java 线程的停止
- 27、Java入门—多线程之线程的正确停止
- Java——线程正常停止
- Java多线程学习笔记—线程停止
- java停止线程的方法
- java 线程停止的方法
- Java线程停止的方法
- Java多线程 线程的停止
- Java线程停止的方法
- java基础---线程的停止
- [线程]——停止线程
- JAVA之旅(十五)——多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止
- java中的interrupt和stop方法——java中线程停止的方法
- java基础——多线程——线程停止
- 访问修饰符权限
- Spring Boot with Spring MVC Application
- 1001. 害死人不偿命的(3n+1)猜想 (15)
- 八连测之一fateice-string
- 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。 A说:不是我。 B说:是C。 C说:是D。 D说:C在胡说 已知3个人说了真话,1个人说的是假话。
- Java——线程的停止
- 用jsp+Servlet实现简单的提交表单并显示的注册
- 编写代码模拟手机与SIM卡的组合关系
- hello
- 记一次python+selenium+chrome爬虫
- hello2
- Java安全简介与总结
- 程序员如何高效学习(以 Java 为例)
- java注解简单学习