java如何创建子线程
创建子线程的方法
在Java中创建子线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法。
继承Thread类
通过继承Thread类并重写run()方法,可以创建一个子线程。以下是示例代码:
class MyThread extends Thread {
@Override
public void run() {
System.out.println("子线程运行中");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 启动子线程
}
}
实现Runnable接口
通过实现Runnable接口并实现run()方法,可以更灵活地创建子线程。以下是示例代码:
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("子线程运行中");
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start(); // 启动子线程
}
}
使用Lambda表达式简化
Java 8及以上版本可以通过Lambda表达式简化Runnable接口的实现:
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
System.out.println("子线程运行中");
});
thread.start();
}
}
使用线程池创建子线程
通过ExecutorService可以更高效地管理线程资源:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("子线程运行中");
});
executor.shutdown(); // 关闭线程池
}
}
注意事项
- 调用
start()方法会启动新线程并执行run()方法,直接调用run()方法不会创建新线程。 - 避免多次调用
start()方法,否则会抛出IllegalThreadStateException。 - 线程池使用完毕后需要调用
shutdown()方法释放资源。







