在 Java 中,使用多线程主要有以下几种方式:
-
实现 Runnable 接口:这是实现多线程的一种方式。一个类实现 Runnable 接口后,就意味着它是一个线程的执行对象。当一个线程启动时,需要一个与之关联的 Runnable 对象。
public class MyRunnable implements Runnable { public void run() { // 线程执行的代码 } } Thread thread = new Thread(new MyRunnable()); thread.start();
-
继承 Thread 类:Java 中的 Thread 类本身就实现了 Runnable 接口,所以可以直接继承 Thread 类来创建线程。
public class MyThread extends Thread { public void run() { // 线程执行的代码 } } MyThread thread = new MyThread(); thread.start();
-
使用 Executor 框架:Java 中的 Executor 框架提供了一种更加灵活的方式来实现多线程。通过 Executor,可以管理线程的生命周期、控制线程池的大小等。
ExecutorService executor = Executors.newFixedThreadPool(10); // 创建一个固定大小的线程池 executor.execute(new MyRunnable()); // 提交任务到线程池中执行 executor.shutdown(); // 关闭线程池
-
使用 CompletableFuture:Java 8 引入了 CompletableFuture 类,它提供了更加简洁和强大的异步编程模型。CompletableFuture 可以看作是对 Future 的增强,提供了更加丰富的操作符,如 thenApply、thenAccept、thenCompose 等,用于处理异步计算的结果。
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> { // 异步计算任务 return "result"; }); future.thenAccept(result -> { // 处理异步计算结果 });