使用Thread类:
创建一个继承自Thread类的子类,并重写其run()方法来定义线程的任务逻辑。然后通过创建该子类的实例并调用start()方法启动线程。
class MyThread extends Thread {
public void run() {
// 线程的任务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.start();
}
}
使用Runnable接口:
创建一个实现了Runnable接口的类,并实现其run()方法来定义线程的任务逻辑。然后创建Thread实例,将该Runnable对象作为参数传递给Thread的构造函数,并调用start()方法启动线程。
class MyRunnable implements Runnable {
public void run() {
// 线程的任务逻辑
}
}
public class Main {
public static void main(String[] args) {
MyRunnable runnable = new MyRunnable();
Thread thread = new Thread(runnable);
thread.start();
}
}
使用Callable和Future:
创建一个实现了Callable接口的类,并实现其call()方法来定义线程的任务逻辑。然后通过创建ExecutorService实例来提交Callable任务,并使用Future对象获取线程执行结果。
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
class MyCallable implements Callable
使用线程池:
创建一个ExecutorService线程池,然后将Runnable或Callable任务提交给线程池执行。
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
class MyRunnable implements Runnable {
public void run() {
// 线程的任务逻辑
}
}
public class Main {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(5);
Runnable runnable = new MyRunnable();
for (int i = 0; i < 10; i++) {
executor.submit(runnable);
}
executor.shutdown();
}
}
这些是常用的多线程实现方式,每种方式都有其适用的场景。你可以根据实际需求选择合适的方式来实现多线程。