如何开关java线程
开启Java线程
Java中线程的开启通常通过创建Thread类的实例或实现Runnable接口来完成。以下是两种常见方式:
继承Thread类
class MyThread extends Thread {
public void run() {
System.out.println("Thread is running");
}
}
MyThread thread = new MyThread();
thread.start(); // 启动线程
实现Runnable接口

class MyRunnable implements Runnable {
public void run() {
System.out.println("Runnable thread is running");
}
}
Thread thread = new Thread(new MyRunnable());
thread.start(); // 启动线程
关闭Java线程
Java没有直接提供强制终止线程的方法,推荐通过协作式终止(如标志位)或调用interrupt()方法。
使用标志位终止线程

class MyThread extends Thread {
private volatile boolean running = true;
public void run() {
while (running) {
System.out.println("Thread is running");
}
}
public void stopThread() {
running = false;
}
}
MyThread thread = new MyThread();
thread.start();
// 需要停止时
thread.stopThread();
使用interrupt()方法
class MyThread extends Thread {
public void run() {
while (!Thread.interrupted()) {
System.out.println("Thread is running");
}
}
}
Thread thread = new MyThread();
thread.start();
// 需要停止时
thread.interrupt();
注意事项
- 直接调用
Thread.stop()已废弃,可能导致资源未释放或数据不一致。 interrupt()方法不会立即终止线程,需线程自身检查中断状态并响应。- 对于阻塞操作(如
sleep()或wait()),调用interrupt()会抛出InterruptedException,需捕获处理。
线程池管理线程
使用ExecutorService可以更方便地管理线程生命周期:
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> System.out.println("Task running"));
// 关闭线程池
executor.shutdown(); // 平缓关闭
executor.shutdownNow(); // 立即中断所有任务






