共计 981 个字符,预计需要花费 3 分钟才能阅读完成。
Java 线程停止的方法有以下几种:
- 使用标志位:在 Thread 类中定义一个 boolean 类型的变量作为标志位,当标志位为 true 时,线程执行完当前任务后退出循环,从而停止线程。
public class MyThread extends Thread {
private boolean flag = true;
@Override
public void run() {while (flag) {// 线程执行的任务}
}
public void stopThread() {flag = false;}
}
可以通过调用 stopThread() 方法设置标志位为 false,从而停止线程。
- 使用 interrupt() 方法:调用线程的 interrupt() 方法,可以中断线程的执行。线程在执行过程中可以通过检查自身是否被中断来判断是否停止执行。
public class MyThread extends Thread {
@Override
public void run() {while (!Thread.interrupted()) {// 线程执行的任务}
}
}
可以通过调用 interrupt() 方法中断线程。
- 使用 stop() 方法(已废弃):stop() 方法是 Thread 类中的方法,可以直接停止线程的执行。但该方法已被废弃,不推荐使用,因为会导致线程的不可预期状态,可能会造成资源的泄漏或数据的不一致。
public class MyThread extends Thread {
@Override
public void run() {while (true) {// 线程执行的任务}
}
}
可以通过调用 stop() 方法停止线程,但不推荐使用。
- 使用 Thread.interrupt() 和 isInterrupted() 方法:通过调用 Thread.interrupt() 方法中断线程,并通过 isInterrupted() 方法判断线程是否被中断。
public class MyThread extends Thread {
@Override
public void run() {while (!isInterrupted()) {// 线程执行的任务}
}
}
可以通过调用 interrupt() 方法中断线程,并通过 isInterrupted() 方法判断线程是否被中断。
总体来说,推荐使用标志位或 interrupt() 方法来停止线程,而不推荐使用 stop() 方法。
丸趣 TV 网 – 提供最优质的资源集合!
正文完