Mat*_*aun 6 java executorservice completable-future
我创建了一个自定义 ExecutorService
ExecutorService executor =
new ThreadPoolExecutor(0, maxPoolSize, keepAliveTime, timeUnit, new LinkedBlockingDeque<>());
Run Code Online (Sandbox Code Playgroud)
我提交我的任务
Future<String> result = executor.submit(() -> "test");
Run Code Online (Sandbox Code Playgroud)
如你所见,执行者返回微薄Future; 我宁愿拥有一个CompletableFuture可以和其他人联系CompletableFuture的东西.
在番石榴,我们有ListeningExecutorService返回ListenableFutures.ListenableFuture根据我的意图和目的,这些是和CompletableFutures 一样好.
尽管如此,我还是希望尽可能多地使用Java的标准库,这意味着我正在寻找一种CompletableFuture从我的自定义执行器中获取s 的方法.
事后看来很明显:不要试图CompletableFuture从执行者那里获得一个,而是将执行者传递给CompletableFuture.
像这样:
CompletableFuture<String> futureOutput =
CompletableFuture.supplyAsync(() -> "test", executor);
Run Code Online (Sandbox Code Playgroud)
该任务将使用其中一个提供的线程执行,executor并且客户端具有CompletableFuture获取任务结果的所有便利.
| 归档时间: |
|
| 查看次数: |
2729 次 |
| 最近记录: |