JAVA-多线程-停止线程
来源:互联网 发布:学术讲座海报 大数据 编辑:程序博客网 时间:2024/05/23 05:10
多线程编程中,想要要正在运行的线程停止,主要有两种方式:
- 1使用stop方法强行终止线程,但是不推荐此方法,因为stop方法和suspend及resume一样,都是过期作废的,使用它们很有可能会有不可预料的结果。
- 2 在多线程的run方法中,通过加入标志位判断配合着 interrupt 标志方法,进行线程的业务逻辑上的停止。
第一种方式不说了,强烈不建议使用stop方法,因为如果强制停止线程可能使一些清理性的工作得不到完成,并且在对于有 锁 对象的进行处理的时候,强制停止会出现不一致情况。
在介绍第二种方式之前,先介绍一下多线程中的两个方法 this.interrupted(); 以及 this.isInterrupted(); 他们都是测试当前线程已经中断的状态,但是还是有区别的。
this.interrupted(): 测试当前线程是否已经中断状态,执行后可以将状态标识清除false,意思就是说,如果你使用thread.interrupt() ; 方法将当前的线程状态标识打上了“是否停止它,true”,那么调用一次this.interrupted(): 后标识就会被改为“是否停止它,false”,那么第二次次继续this.interrupted(): 的时候,状态就会变为了false。
this.isInterrupted();测试当前线程是否已经中断状态,执行后不清除标识状态,停止线程,主要使用该方法进行判断,代码如下
代码1—- 通过main方法中的对线程使用interrupt方法,打上标志位,在run逻辑代码中进行判断,然后直接退出循环,或者返回结果,进行停止线程。
这里写图片描述
代码2—- 抛异常后,try中下部分代码不执行了,达到停止线程的目的,然后执行catch方法。
建议使用 抛异常的方法来实现线程停止,因为可以在catche块中一层一层向上抛,达到层层传播的目的。
0 0
- java 多线程 停止线程
- JAVA-多线程-停止线程
- java多线程 ---- 停止线程
- Java多线程-停止线程
- java多线程-停止线程interrupt
- Java多线程 线程的停止
- java多线程之停止线程
- Java笔记 - 多线程 - 停止线程
- java多线程之-----停止线程
- Java多线程之停止线程
- Java多线程编程-停止线程 暂停线程
- 【Java 多线程】Java 如何停止线程
- Java多线程学习笔记—线程停止
- JAVA多线程学习笔记<3> 停止线程
- Java多线程之停止一个线程
- java多线程---停止、暂停一个线程
- java多线程之启动,停止线程
- Java多线程编程核心技术之---停止线程
- svn中 更新,提交,与资源库同步分别会有什么效果
- PHP 编辑器 kindEditor 上传图片失败 解决方案
- 第十五章 undefined
- Volley学习篇----源码走读
- 【最新】Xcode 8 打包教程
- JAVA-多线程-停止线程
- 17-TCP Transmission Control Protocol
- 第十六章 Math函数
- 代码可读性优化
- YUV420P的像素数据编码为H.264的压缩编码数据
- 18-TCP Connection Establishment and Termination
- RecycleView简单使用
- 文章标题
- 知识管理软件之二 卡拉OK读小说 藏书库系列