Java中合理的停止掉一个线程thread
来源:互联网 发布:博思数据 电子烟 编辑:程序博客网 时间:2024/05/21 12:41
1、第一种也是最常用的一种就是使用状态位
public class Task extends Thread {
private volatile boolean flag= true;
public void stopTask() {
flag = false;
}
@Override
public void run() {
while(flag){
/* do your no-block task */
}
}
}
这是最经典的安全终止当前thread的方式,结构简单精炼,推荐使用。但这种方式也有缺陷,当while循环里面的执行比如io等超时的话,这种情况没办法终止线程
2. 使用stop方法终止线程
使用stop方法可以强行终止正在运行或挂起的线程。我们可以使用如下的代码来终止线程:
thread.stop();
虽然使用上面的代码可以终止线程,但使用stop方法是很危险的,就象突然关闭计算机电源,而不是按正常程序关机一样,可能会产生不可预料的结果,因此,并不推荐使用stop方法来终止线程。
3. 使用interrupt方法终止线程
使用interrupt方法来终端线程可分为两种情况:
(1)线程处于阻塞状态,如使用了sleep方法。
(2)使用while(!isInterrupted()){……}来判断线程是否被中断。
在第一种情况下使用interrupt方法,sleep方法将抛出一个InterruptedException例外,而在第二种情况下线程将直接退出。
- Java中合理的停止掉一个线程thread
- Java中关于thread的停止问题
- java停止线程的一个示例
- java线程研究---(3)停止Thread
- java中让线程停止的技巧
- Java中停止线程执行的方法
- Java中停止线程执行的方法
- java中停止线程执行的方法
- 如何停止一个Java线程
- java中如何停止(stop)一个线程
- java中如何靠interrupt来停止stop一个线程
- Java 线程的停止
- java 线程的停止
- JAVA中线程Thread
- How to stop a Thread(怎样停止一个线程)
- java中如何停止线程
- 如何停止一个正在运行的java线程
- 如何停止一个正在运行的java线程?
- UEditor1.4.3 使用配置心得
- 负数-补码
- PHP基础知识总结
- 使用NSNotificationCenter 事件通知
- Opencv Mat类
- Java中合理的停止掉一个线程thread
- setBackground和setBackgroundDrawable的区别
- BAT解密:互联网技术发展之路(1) - 技术发展的驱动力
- C#与C++的区别
- Activity 知识点
- 移动端页面性能探究
- Win7/8下提示OpenSCManager failed 拒绝访问
- ListView 和 Adapter 的基础
- iOS 解决cell内容重复的解决办法