Java 关闭当前线程
时间: 2024-03-06 11:49:28 浏览: 54
在 Java 中,可以调用 `Thread.currentThread().interrupt()` 方法来中断当前线程的执行。这个方法会设置当前线程的中断标志,但并不会直接中断线程的执行。线程可以在合适的时候检查该标志并作出响应,例如停止执行并退出线程。
下面是一个简单的示例,演示如何关闭当前线程:
```java
public class MyThread implements Runnable {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
// 执行线程的任务
// ...
try {
Thread.sleep(1000); // 线程休眠 1 秒钟
} catch (InterruptedException ex) {
// 检测到中断信号,退出线程
Thread.currentThread().interrupt();
return;
}
}
}
}
```
在上面的示例中,`MyThread` 类实现了 `Runnable` 接口,并实现了一个 `run()` 方法,该方法会在线程启动后被执行。在 `run()` 方法中,线程会执行指定的任务,并在每次循环结束后休眠 1 秒钟。在每次循环开始时,线程会检查当前线程的中断标志,如果为 `true`,则退出线程。
在 `catch` 块中,线程会检测到中断信号,并调用 `Thread.currentThread().interrupt()` 方法来设置当前线程的中断标志。然后线程会退出 `run()` 方法并结束执行。
要关闭当前线程,只需要在当前线程中调用 `Thread.currentThread().interrupt()` 方法即可,例如:
```java
Thread thread = new Thread(new MyThread());
thread.start(); // 启动线程
// ...
Thread.currentThread().interrupt(); // 关闭当前线程
```
需要注意的是,`interrupt()` 方法只是设置了中断标志,并不会直接中断线程的执行。线程在合适的时候需要检查该标志并作出响应,例如停止执行并退出线程。
阅读全文