java如何启动线程
启动线程的方法
在Java中,启动线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法。
继承Thread类
通过继承Thread类并重写run()方法,可以创建并启动线程。调用start()方法后,JVM会自动执行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()方法,将实例作为参数传递给Thread类的构造函数。调用start()方法启动线程。
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(); // 关闭线程池
}
}
注意事项
- 直接调用
run()方法不会启动新线程,而是普通方法调用。 - 多次调用
start()方法会导致IllegalThreadStateException异常。 - 线程的执行顺序由JVM调度,无法保证严格顺序。






