【发布时间】:2020-12-16 22:39:34
【问题描述】:
我正在寻找 Java 中与 Scala 的未来等价的东西。
我正在寻找一种构造类型,它允许我将任务 (Runnables / Callables) 提交到我选择的特定线程池,返回期货允许我链接一些逻辑(在非阻塞方式)在它完成时发送给它。像这样的:
var executor = Executors.newCachedThreadPool();
executor.submit(() -> {
Thread.sleep(5000);
return 666;
}.onComplete(v -> System.out.println(v));
Java 的线程池(可通过 Executors 单例获得)似乎总是返回标准 Java Futures,它只允许我调用阻塞 get()。另一方面,据我了解,CompletableFuture 更类似于 Scala 的承诺,并且不绑定到线程池。
Java 是否提供了我正在寻找的东西? Java 领域的人们如何处理这些类型的操作?
【问题讨论】:
-
我已经读过了。我目前正在使用 Java。
-
你能澄清一下我在寻找什么吗?
CompletableFuture是否满足您的需求? -
您使用的是哪个 Java 版本?
标签: java multithreading scala concurrency