问题标签 [future]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1257 浏览

java - 使用 java 的 Future 类时,我怎么知道任务是如何完成的

我正在使用 java 的 Future 类来执行任务,但是如果任务完成,方法 isDone 返回 true。完成可能是由于正常终止、异常或取消——在所有这些情况下,此方法都将返回 true。

有没有办法知道它是因为异常还是因为它成功完成而结束?

0 投票
1 回答
2059 浏览

actor - 演员相对于期货的优势

我目前在 Futures 编程,我对演员很好奇。我想听听经验丰富的声音:

  • 演员相对于期货有什么优势?
  • 我什么时候应该使用一个而不是另一个?

据我所知,演员持有状态而期货没有,这是唯一的区别吗?所以如果我有真正的不变性,我不应该关心演员吗?

请赐教:-)

0 投票
2 回答
178 浏览

java - 处理一种未来依赖于另一种未来的两种不同类型的期货的理想方法是什么?

我正在查看 AKKA 的 Java Futures API,我看到了很多方法来处理同一类型的多个期货,但我没有看到任何可以处理不同类型期货的东西。我猜我让这比现在更复杂。

无论如何,假设我们有两个不同的 Actor:actorA 和 actorB。它们基于不同的类,并且各自返回不同的 Future。然而,actorB 依赖于来自 actorA 的 Future。是以下逻辑,如何最好地处理这种情况?

如果我们有一个actorAs 和actorBs 的列表呢?

0 投票
9 回答
75575 浏览

python - 将多个参数传递给 concurrent.futures.Executor.map?

接受可变数量的concurrent.futures.Executor.map迭代,从中调用给定的函数。如果我有一个生成元组的生成器通常在原地解压,我应该怎么称呼它?

以下内容不起作用,因为每个生成的元组都作为 map 的不同参数给出:

如果没有生成器,映射所需的参数可能如下所示:

0 投票
5 回答
105716 浏览

javascript - JavaScript 中的 Deferred、Promise 和 Future 有什么区别?

延期、承诺和期货之间有什么区别?
这三个背后是否有普遍认可的理论?

0 投票
1 回答
2474 浏览

multithreading - 如何使用提升线程期货的向量?

如何使用线程期货向量从一组线程中获取返回值?这应该工作吗?如果不是,我该如何适应它?

0 投票
2 回答
1646 浏览

java - 如何正确使用线程池并从线程中获取结果?

我正在尝试尝试多线程编程(对我来说是新的),我有一些问题。

我正在使用一个ThreadPoolTaskExecutor带有实现的 TestTaskRunnable和一个run休眠 X 秒的方法。一切都很顺利,我所有的 TestTask 都在不同的线程中执行。好的。现在棘手的部分是我想知道在线程中进行的操作的结果。因此,我在 Google/stack/etc 上阅读了一些内容,并尝试使用Future. 而且它不再运作良好:/

我使用该get方法来获取(哦,真的吗?)该call方法的结果并且该部分正在工作,但是 TestTask 一个接一个地执行(而不是像以前那样同时执行)。所以我猜我没有正确理解某些东西,但我不知道是什么......这就是为什么我需要你的帮助!

启动测试的类:

TestThreadService 类:

和 TestTask 类:

我在 Java 方面还不错,但这是我第一次尝试使用不同的线程,所以对我来说有点新。

我究竟做错了什么 ?

谢谢 !

0 投票
0 回答
840 浏览

python - 计算 futures.ThreadPoolExecutor 中的待处理任务

我正在寻找一种计算 python 3.2 futures.ThreadPoolExecutor 中待处理任务数量的方法。

直到知道,我有两个解决方案:1.-在提交时增加挂起任务的数量,并添加回调以在任务完成时减少计数 2.-保留期货列表并检查哪些仍处于未决状态

有没有更直接的(即执行者的属性或方法)?

提前致谢

0 投票
4 回答
1559 浏览

c++ - C++,Linux:错误:从 'boost::unique_future 转换' 到非标量类型 'boost::shared_future'要求。如何绕过它?

我尝试使用boost thread futures。因此,如图所示我们可以从打包的任务中获得共享的未来

所以我在linux上尝试了这样的功能:

但我得到错误调用它:

我之前没有从该任务中获得任何未来。所有源代码我调用的地方,我调用的线程池。在 Visual Studio 2010 下的 Windows 上,它可以完美地编译和运行。

我该怎么办?如何修复或解决此错误?

0 投票
2 回答
442 浏览

future - 如何用actor实现异步相互依赖的可取消操作?

我对 Actor 模型还很陌生,这就是为什么我认为已经建立了模式来处理我的常见场景,这些模式具有像演员和期货这样美丽的可组合抽象。

我有以下要求的异步操作:

  • 他们通过发送低级请求然后通过轮询监视实体的状态来使用遗留系统。所以实际操作的结果只能以延迟的方式获得,当观察到的状态达到期望的状态时,必须通知请求者。
  • 这些操作只有在其他一些操作完成后才能发出,它们应该并行等待。
  • 可以取消操作。当然,已经发出的低级请求是无法撤销的;取消意味着在我们依赖的操作完成后不发出实际的操作,当然这必须递归传播(如果我们等待一个依赖,并且它有多个挂起的操作,不要发出它们)。

我在 Futures 中考虑:第一个要求可以用例如 Akka 的map/来解决flatMap,第二个要求可以用traverse组合器来解决,而无需在程序上维护依赖项/依赖项。但我想不出取消的解决方案;期货不能被取消,如果组合,它们的组件是不可访问的。如何以函数的方式封装“取消当前操作”?Scala 的任何 Actor 框架是否支持这一点?