我的课堂上有这些字段:
private ExecutorService executorService = Executors.newFixedThreadPool(10);
private TimeLimiterConfig timeLimiterConfig = TimeLimiterConfig.custom()
.cancelRunningFuture(true)
.timeoutDuration(Duration.ofSeconds(2))
.build();
我正在这样调用我的外部服务:
TimeLimiter.of(timeLimiterConfig).executeFutureSupplier(()-> CompletableFuture.supplyAsync(() -> demoGateway.service(param) ,executorService));
如果demoGateway.service花费的时间超过2秒,则Timelimiter将抛出TimeoutException,我的问题是
此创建的异步线程将返回ThreadPool或将被杀死(我的executorService是否还有10个线程)?
在这种情况下,cancelRunningFuture将强制完成创建的异步线程吗?
在这种情况下(cancelRunningFuture)使用true或false有什么区别?