// Java 异步线程示例代码
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class AsyncThreadExample {
// 创建一个线程池,使用固定数量的线程
private static final ExecutorService executor = Executors.newFixedThreadPool(10);
public static void main(String[] args) throws Exception {
// 提交一个异步任务,并获取 Future 对象
Future<String> future = executor.submit(() -> {
// 模拟耗时操作
Thread.sleep(2000);
return "异步任务完成";
});
System.out.println("主线程继续执行其他任务");
// 获取异步任务的结果,如果任务未完成,则会阻塞等待
String result = future.get();
System.out.println(result);
// 关闭线程池
executor.shutdown();
}
}
Executors.newFixedThreadPool(10) 创建了一个包含 10 个线程的线程池。这允许我们并行执行多个任务。Callable 接口的匿名类(或 Lambda 表达式),它会在后台线程中执行,并返回一个 Future 对象。future.get() 会阻塞当前线程,直到异步任务完成并返回结果。executor.shutdown() 来优雅地关闭线程池,确保所有任务完成后线程池会被终止。这样,你可以在不影响主线程的情况下执行耗时任务,并在任务完成后获取结果。
上一篇:java定时任务cron表达式
下一篇:java record关键字
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站