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();
}
}
使用Callable和Future
Callable接口允许线程返回结果或抛出异常。通过ExecutorService提交Callable任务,可以获取Future对象来管理线程执行结果。
import java.util.concurrent.*;
class MyCallable implements Callable<String> {
public String call() throws Exception {
return "Thread execution result";
}
}
public class Main {
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<String> future = executor.submit(new MyCallable());
System.out.println(future.get());
executor.shutdown();
}
}
使用线程池
通过ExecutorService和线程池管理线程,可以优化资源使用并提高性能。
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(3);
for (int i = 0; i < 5; i++) {
Runnable worker = new WorkerThread("Task " + i);
executor.execute(worker);
}
executor.shutdown();
}
}
class WorkerThread implements Runnable {
private String task;
public WorkerThread(String task) {
this.task = task;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " executing " + task);
}
}
注意事项
- 调用
start()方法会启动新线程并执行run()方法,直接调用run()方法不会创建新线程。 - 线程的执行顺序由操作系统调度,无法保证严格顺序。
- 使用线程池时需注意资源管理,避免内存泄漏或性能问题。






