java如何创建线程
创建线程的方法
在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法。
继承Thread类
通过继承Thread类并重写run()方法,可以创建线程。以下是示例代码:
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接口并重写run()方法,可以创建线程。以下是示例代码:
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:
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();
}
}
使用线程池
通过线程池管理线程可以提高性能:
import java.util.concurrent.*;
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> {
System.out.println("Thread 1 is running");
});
executor.submit(() -> {
System.out.println("Thread 2 is running");
});
executor.shutdown();
}
}
注意事项
- 调用
start()方法会启动线程并执行run()方法,直接调用run()方法不会创建新线程。 - 避免频繁创建和销毁线程,使用线程池可以提高性能。
- 线程安全问题需要注意,多线程共享数据时需使用同步机制。







