小编Mag*_*ton的帖子

在 Java 中从 C++ 复制延迟/异步启动策略

在 C++ 中,您可以使用延迟或异步启动策略启动线程。有没有办法在 Java 中复制此功能?

auto T1 = std::async(std::launch::deferred, doSomething());
auto T2 = std::async(std::launch::async, doSomething()); 
Run Code Online (Sandbox Code Playgroud)

每个的描述——

异步:

如果设置了 async 标志,则 async 在新的执行线程上执行可调用对象 f(所有线程局部初始化),除非函数 f 返回值或抛出异常,否则它会存储在可访问的共享状态通过 std::future 异步返回给调用者。

延期:

如果设置了延迟标志,则 async 转换 f 和 args... 与 std::thread 构造函数相同,但不会产生新的执行线程。相反,执行惰性求值:第一次调用 std::future 上的非定时等待函数,异步返回给调用者将导致 f 的副本与 args 的副本一起被调用(作为右值)。 . (也作为右值传递)在当前线程(它不必是最初调用 std::async 的线程)。结果或异常被置于与未来关联的共享状态中,然后才准备就绪。对同一 std::future 的所有进一步访问将立即返回结果。

有关详细信息,请参阅文档

java multithreading asynchronous future completable-future

6
推荐指数
2
解决办法
154
查看次数