Java:如何停止线程?
2022-09-02 11:11:12
有没有办法从线程外部停止另一个线程?例如,如果我运行一个线程来运行该线程并导致该线程停止?它会停止另一个线程吗?
有没有办法在没有循环的情况下从内部停止线程?例如,如果您正在理想地下载,您将希望使用循环,如果我使用循环,我将无法暂停它,直到它到达循环的末尾。
有没有办法从线程外部停止另一个线程?例如,如果我运行一个线程来运行该线程并导致该线程停止?它会停止另一个线程吗?
有没有办法在没有循环的情况下从内部停止线程?例如,如果您正在理想地下载,您将希望使用循环,如果我使用循环,我将无法暂停它,直到它到达循环的末尾。
我们不会停止或杀死一个线程,而是这样做Thread.currentThread().isInterrupted().
public class Task1 implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
................
................
................
................
}
}
}
在主要情况下,我们将这样做:
Thread t1 = new Thread(new Task1());
t1.start();
t1.interrupt();
您可以创建一个布尔字段并在运行中检查它:
public class Task implements Runnable {
private volatile boolean isRunning = true;
public void run() {
while (isRunning) {
//do work
}
}
public void kill() {
isRunning = false;
}
}
要停止它,只需调用
task.kill();
这应该有效。