java中的线程终止
时间: 2023-12-29 10:25:08 浏览: 95
Java中有多种方式可以终止线程,以下是两种常用的方式:
1. 使用stop()方法(已过时,不推荐使用):Thread类提供了stop()方法,可以立即终止线程的执行。但是该方法已过时,不推荐使用。因为stop()方法可能导致线程不会释放占用的锁资源,从而引发线程安全问题。示例代码如下:
```java
public class MyThread extends Thread {
public void run() {
while (true) {
// 执行线程任务
}
}
public void stopThread() {
stop();
}
}
```
2. 使用interrupt()方法:线程的interrupt()方法会将线程的中断状态设置为"中断"。在线程的执行代码中,可以使用Thread.currentThread().isInterrupted()方法检查线程的中断状态,并在必要时终止线程执行。与方式1相比,这种方式更加灵活,可以处理更复杂的线程终止逻辑。示例代码如下:
```java
public class MyThread extends Thread {
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
// 执行线程任务
// 可能会有一些阻塞操作,如Thread.sleep()等
} catch (InterruptedException e) {
// 捕获InterruptedException异常,清除中断状态
Thread.currentThread().interrupt();
}
}
}
public void stopThread() {
interrupt();
}
}
```
阅读全文