我已经尝试过多次使用协程(启动和异步)。它们是并行运行的,但是为什么很多人说启动不是呢?在这个例子中,我使用了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发布于 2021-04-02 20:47:36
同时使用launch和async可以并行运行任务。不同之处在于,launch返回一个Job,而async返回一个Deferred,它实际上是一个带有结果的Job。
因此,如果您希望使用两个任务的结果,launch不是一个好的选择。
https://stackoverflow.com/questions/66919385
复制相似问题