在Dart中,我希望运行几个相互独立的代价高昂的函数,并将结果分配给我的变量,具体取决于生成它们的函数。大致类似的版本:double y = getY();double x, y; futureGetX(),]).then((List results) { // if(r is produced by futureGetX) x = r;
// if(r is produced by futureGetY)
C#提供了执行异步执行的多种方法,如线程、期货和异步。我读过很多关于异步的文章,但是到目前为止,我还没有看到任何讨论原因的文章。最初,我认为异步是一种内置的机制来创建未来。异步不执行此操作。如果您想要这种行为,可以使用期货库:int foo(){ return ..complex operation..; }
var x = Task.Factory.StartNew因此,如果您想让多个线程对
Akka/Scala未来的理念是,当我们发现一个阻塞代码,如IO调用、网络调用等,我们就必须将它封装在未来中,并在某个时间点之后异步获得结果。但是,前面阻塞主线程的代码块现在是阻塞未来支持的单独线程。那么Akka/Scala期货公司给我们买了什么。blockingCallResult: Result = block() //also blocks on some thread in thread pool
我们如何从利用未来中获益
在颤动/Dart应用程序中处理期货的最佳方法是什么?处理原始的Future api,还是使用带有await的异步函数?有没有什么利弊,还是完全取决于个人喜好?由于生成的javascript代码的复杂性,它似乎是异步/等待的AngularDart Project has tried to get rid。这显然不是颤动应用的问题。但有时我认为,与处理异步函数相比,Future api的表现力(和imho函数风格)更具优势。 有没有什么技术原因可以避免异步/等待糖,而是直接处理F