java中如何创建线程
创建线程的方法
在Java中创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法。
继承Thread类
通过继承Thread类并重写run()方法可以创建线程。这种方式简单直接,但由于Java不支持多重继承,使用场景有限。

class MyThread extends Thread {
@Override
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接口是更常用的方式,避免了单继承的限制,且更适合资源共享的场景。
class MyRunnable implements Runnable {
@Override
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接口和Future对象。Callable类似于Runnable,但可以返回值和抛出异常。
import java.util.concurrent.*;
class MyCallable implements Callable<String> {
@Override
public String call() throws Exception {
return "Thread 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(5);
executor.submit(() -> {
System.out.println("Thread is running");
});
executor.shutdown();
}
}
注意事项
- 线程启动必须调用
start()方法而非直接调用run()方法。 - 避免直接创建过多线程,推荐使用线程池管理资源。
- 线程安全是多线程编程中的关键问题,需注意同步和锁机制的使用。
以上方法涵盖了Java中创建线程的主要方式,开发者可根据具体需求选择合适的方式。






