![JAVA终止线程的方法](http://p2.ttnews.xyz/loading.gif)
如何正确地停止一个线程
方法如下:
- 使用退出标志,使线程正常退出,也就是当 run 方法完成后线程终止
- 使用 interrupt 方法中断线程
- 退出标志法:
需要 while() 循环在某以特定条件下退出,最直接的办法就是设一个 boolean 标志,并通过设置这个标志来控制循环是否退出:
![JAVA终止线程的方法](http://p2.ttnews.xyz/loading.gif)
需要注意的是:isCancelled 需要为 volatile,保证线程读取时 isCancelled 是最新数据
- interrupt法终止:
如果线程是阻塞的,则不能使用退出标志法来终止线程。这时就只能使用 Java 提供的中断机制:
- void interrupt()
如果线程处于被阻塞状态,那么线程将立即退出被阻塞状态,并抛出一个 InterruptedException 异常
如果线程处于正常活动状态,那么该线程的中断标志为 true。
- static boolean interrupted()
测试当前线程是否被中断。这一调用会将当前线程的中断状态重置为 false
- boolean isInterrupted()
测试线程是否被终止。不像静态的中断方法,这一调用不改变线程的中断状态
终止 实例代码
以上代码运行输出结果为:
閱讀更多 咱小二 的文章