如何启动多线程java
启动多线程的Java方法
在Java中,可以通过多种方式启动多线程。以下是几种常见的方法:
继承Thread类
通过继承Thread类并重写run()方法,可以创建一个新的线程。创建实例后调用start()方法启动线程。

class MyThread extends Thread {
public void run() {
System.out.println("Thread is running");
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
实现Runnable接口
通过实现Runnable接口并实现run()方法,可以创建一个线程任务。将任务传递给Thread类的构造函数,并调用start()方法启动线程。
class MyRunnable implements Runnable {
public void run() {
System.out.println("Thread is running");
}
}
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 is running");
});
thread.start();
}
}
使用ExecutorService
通过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("Thread is running");
});
executor.shutdown();
}
}
使用Callable和Future
如果需要线程返回结果,可以使用Callable接口和Future对象。
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) throws ExecutionException, InterruptedException {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(() -> {
return "Thread result";
});
System.out.println(future.get());
executor.shutdown();
}
}
注意事项
- 避免直接调用
run()方法,这不会启动新线程,而是在当前线程中执行任务。 - 使用线程池时,确保在程序结束时调用
shutdown()方法释放资源。 - 多线程环境下注意线程安全问题,避免竞态条件和数据不一致。






