Java 杂谈

JAVA终止线程的方法

2018-05-28  本文已影响5人  启示录是真的

如何正确地停止一个线程

方法如下:

使用退出标志,使线程正常退出,也就是当 run 方法完成后线程终止

使用 interrupt 方法中断线程

退出标志法:

需要 while() 循环在某以特定条件下退出,最直接的办法就是设一个 boolean 标志,并通过设置这个标志来控制循环是否退出:

需要注意的是:isCancelled 需要为 volatile,保证线程读取时 isCancelled 是最新数据

interrupt法终止:

如果线程是阻塞的,则不能使用退出标志法来终止线程。这时就只能使用 Java 提供的中断机制:

void interrupt()无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!很多干货和技术资料分享!有导师分享知识点,也可以直接问,每天学习的都不一样,推荐一个学JAVA的技术分享裙【 一三三,九三零,六九三】,裙内有开发工具,视频,系列资料等

无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!很多干货和技术资料分享!有导师分享知识点,也可以直接问,每天学习的都不一样,推荐一个学JAVA的技术分享裙【 一三三,九三零,六九三】,裙内有开发工具,视频,系列资料等如果线程处于被阻塞状态,那么线程将立即退出被阻塞状态,并抛出一个 InterruptedException 异常

如果线程处于正常活动状态,那么该线程的中断标志为 true。

static boolean interrupted()

测试当前线程是否被中断。这一调用会将当前线程的中断状态重置为 false

boolean isInterrupted()

测试线程是否被终止。不像静态的中断方法,这一调用不改变线程的中断状态

终止 实例代码

以上代码运行输出结果为:

上一篇 下一篇

猜你喜欢

热点阅读