Runable停止当前线程
时间: 2023-10-21 14:03:31 浏览: 93
`Runnable` 接口本身并不能停止当前线程,它只是一种将代码块或方法作为参数传递的方式。要停止当前线程,可以使用 `Thread` 类的 `interrupt()` 方法来中断线程。例如,在 `run()` 方法中可以使用一个循环来执行任务,并在循环中检查线程是否被中断,如果被中断则跳出循环,从而停止线程。示例代码如下:
```java
public class MyRunnable implements Runnable {
private boolean isStopped = false;
public void stop() {
isStopped = true;
}
@Override
public void run() {
while (!isStopped) {
// 执行任务
// 检查线程是否被中断
if (Thread.currentThread().isInterrupted()) {
break;
}
}
}
}
```
在示例中,我们定义了一个 `stop()` 方法来设置 `isStopped` 标志位,然后在 `run()` 方法中使用一个循环来执行任务,同时检查线程是否被中断。如果线程被中断,就跳出循环,从而停止线程。注意,我们在检查线程是否被中断时调用了 `Thread.currentThread().isInterrupted()` 方法,这个方法会返回当前线程的中断状态,并且不会清除中断状态。如果线程被中断,那么下一次循环时这个方法会返回 `true`,从而使线程跳出循环。
阅读全文