为了提升用户使用体验,先返回结果,再异步执行耗时的程序
1. 单线程的ExecutorService
这将创建一个只有一个线程的ExecutorService实例。它适用于需要按顺序执行任务的场景。
ExecutorService executor = Executors.newSingleThreadExecutor();
2. 固定线程数的ExecutorService
这将创建一个具有固定线程数的ExecutorService实例,其中n是你指定的线程数。它适用于需要同时执行多个任务的场景。
ExecutorService executor = Executors.newFixedThreadPool(n);
3. 可缓存线程的ExecutorService
这将创建一个根据需要自动调整线程数的ExecutorService实例。它适用于需要处理大量短期任务的场景。
ExecutorService executor = Executors.newCachedThreadPool();
4. 延迟执行任务的ExecutorService
这将创建一个具有固定线程数的ScheduledExecutorService实例,其中n是你指定的线程数。它适用于需要在延迟一段时间后执行任务的场景。
ScheduledExecutorService executor = Executors.newScheduledThreadPool(n);
public String run(BankInfo bankInfo) {
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(() -> {
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
bankInfoService.threadTest1(bankInfo);
System.out.println("执行完成");
});
return "正在执行中";
}