启动和异步并行运行



我已经尝试过多次使用协程(启动和异步(。两者并行运行,但为什么很多人说发射不是?在这个例子中,我使用了3个协程,每个协程都有1秒的延迟。

这是异步的。完成需要1秒。

DefaultDispatcher-worker-3 is running
DefaultDispatcher-worker-3 is running
DefaultDispatcher-worker-3 is running
async1 finished
async2 finished
async3 finished
1109 ms

这是发布会。也需要1秒才能完成。

DefaultDispatcher-worker-2 is running
DefaultDispatcher-worker-2 is running
DefaultDispatcher-worker-2 is running
launch1 finished
launch2 finished
launch3 finished
1102 ms

同时使用launchasync可以并行运行任务。不同的是,launch返回一个Job,而async则给您一个Deferred,它实际上是一个有结果的Job

因此,如果您希望使用两个任务的结果,launch不是一个好的选择。

最新更新