// Java 异步线程实现方式示例
import java.util.concurrent.*;
public class AsyncThreadExample {
// 使用 ExecutorService 和 Callable 实现异步任务
public static void main(String[] args) throws InterruptedException, ExecutionException {
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(2);
// 定义一个有返回值的任务
Callable<Integer> task = () -> {
System.out.println("异步任务开始执行...");
Thread.sleep(2000); // 模拟耗时操作
System.out.println("异步任务执行完成");
return 123; // 返回结果
};
// 提交任务并获取 Future 对象
Future<Integer> future = executor.submit(task);
// 主线程继续执行其他操作
System.out.println("主线程继续执行...");
// 获取异步任务的结果,如果任务未完成则会阻塞等待
Integer result = future.get();
System.out.println("异步任务返回结果: " + result);
// 关闭线程池
executor.shutdown();
}
}
Executors
工具类创建不同类型的线程池。Runnable
类似,但 Callable
可以有返回值,并且可以抛出异常。返回类型为 Future<V>
。get()
方法可以获取异步任务的返回结果,如果任务尚未完成,则会阻塞当前线程直到任务完成。Callable
或 Runnable
任务提交给线程池执行,并返回一个 Future
对象用于获取任务执行结果。这个例子展示了如何使用 ExecutorService
和 Callable
来实现一个简单的异步任务,并通过 Future
获取任务的执行结果。
上一篇:java base64转pdf
下一篇:java 数组包含
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站