gpt4 book ai didi

java - 应用程序退出时如何结束非守护线程?

转载 作者:行者123 更新时间:2023-12-02 05:33:11 28 4
gpt4 key购买 nike

我的应用程序中有一个主线程,在这个主线程中我创建了另一个线程,假设它被命名为“WorkerThread”。WorkerThread 有一个无限循环,它执行一些数据库搜索并最终通过串行端口与热敏打印机进行通信。但是当用户关闭应用程序时,它仍然处于 Activity 状态,因为线程仍在运行。我知道我可以将线程设置为守护进程,这意味着线程将在应用程序关闭时停止,但我也知道这可能会导致 IO 错误。那么,在非守护线程中实现此行为的最有效方法是什么?

最佳答案

添加 boolean 标志以在应用程序退出时停止线程。

public class WorkerThread extends Thread {

private boolean running = false;

@Override
public void run() {
while (running) {
// do smth
}
}

@Override
public void start() {
setRunning(true);
super.start();
}

@Override
public void setRunning(boolean value) {
this.running = running;
}
}

要停止线程,请调用workerThread.setRunning(false)

关于java - 应用程序退出时如何结束非守护线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25307749/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com