kotlin 协程如何做多任务合并
在Kotlin协程中,你可以使用async函数来合并多个任务。async函数用于异步计算一个值,并返回一个Deferred对象,可以通过调用await函数来获取计算结果。
你可以将多个async函数放在一个List中,并使用awaitAll函数来并发执行这些任务,并等待所有任务完成。
下面是一个示例代码:
import kotlinx.coroutines.*
fun main() = runBlocking {
val task1 = async { fetchUserData() }
val task2 = async { fetchProductData() }
val task3 = async { fetchOrderData() }
val result = awaitAll(task1, task2, task3)
println(result)
}
suspend fun fetchUserData(): String {
delay(1000)
return "User data"
}
suspend fun fetchProductData(): String {
delay(2000)
return "Product data"
}
suspend fun fetchOrderData(): String {
delay(1500)
return "Order data"
}
在上述代码中,fetchUserData、fetchProductData和fetchOrderData函数模拟了三个耗时的任务。main函数中使用async函数分别创建了这三个任务,并将它们放在一个List中。然后,使用awaitAll函数来并发执行这些任务,并等待它们全部完成。最后,打印所有任务的结果。
运行上述代码,你将会看到类似以下输出:
[User data, Product data, Order data]
这表明三个任务都已完成,并且它们的结果被合并到一个List中
原文地址: https://www.cveoy.top/t/topic/iQz1 著作权归作者所有。请勿转载和采集!