优雅地停止 Java 线程
当遇到冗长且可能不完整的线程时,可能有必要以受控方式终止它。这可以避免突然中断并确保正确的关闭过程。
最佳方法
推荐的方法包括在线程的 run() 方法中实现布尔标志。当线程应该终止时,该标志从外部源设置为“true”。这允许线程自然地完成当前的执行并优雅地退出。
例如:
public class MyThread extends Thread { volatile boolean finished = false; public void stopMe() { finished = true; } @Override public void run() { while (!finished) { // Perform necessary tasks } } }
传统方法:Thread.stop()
一种较旧的线程终止方法涉及调用 Thread.stop() 方法。然而,这种方法现在被认为是不安全的并且不鼓励。与布尔标志方法不同,Thread.stop() 会突然停止线程,可能使受保护的对象处于不稳定状态并导致不可预测的后果。
因此,布尔标志方法仍然是优雅停止 Java 线程的推荐解决方案.
以上是如何优雅地停止 Java 线程:Thread.stop() 仍然是一个选择吗?的详细内容。更多信息请关注PHP中文网其他相关文章!