java 如何创建线程
在Java中创建线程主要有两种方式:继承Thread类或实现Runnable接口。以下是具体实现方法:
继承Thread类
通过继承Thread类并重写run()方法定义线程任务,然后实例化并调用start()方法启动线程。

class MyThread extends Thread {
@Override
public void run() {
System.out.println("线程运行中: " + Thread.currentThread().getName());
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start(); // 启动线程
}
}
实现Runnable接口
实现Runnable接口的run()方法,将实例作为参数传递给Thread类的构造函数。

class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("线程运行中: " + Thread.currentThread().getName());
}
}
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start(); // 启动线程
}
}
使用Lambda表达式(Java 8+)
简化Runnable接口的实现,适用于短小任务。
public class Main {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
System.out.println("线程运行中: " + Thread.currentThread().getName());
});
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(3);
executor.submit(() -> {
System.out.println("线程池任务: " + Thread.currentThread().getName());
});
executor.shutdown(); // 关闭线程池
}
}
注意事项
- 直接调用
run()方法不会启动新线程,仅在当前线程执行。 - 线程启动后状态由JVM调度,不可重复调用
start()。 - 推荐使用
Runnable或线程池,避免单继承限制。






