Kotlin 协程:深入理解与应用
1. 协程基础与阻塞特性
在 Kotlin 中, runBlocking 是一个重要的协程构建器。以下代码展示了其基本用法:
runBlocking {
println("Primary task: ${Thread.currentThread().name}")
delay(200)
}
运行此程序,输出类似如下:
Primary task: main
可以看到, runBlocking 内部的协程在主线程中执行。由于其阻塞特性, runBlocking 不应在其他协程内部使用,它主要作为阻塞和非阻塞代码之间的桥梁,常用于 main 函数或测试中作为顶级构建器。
2. 协程作用域与结构化并发
之前的示例协程在全局作用域中运行,其生命周期仅受整个应用程序的限制。但有时,我们希望将协程执行限制在特定操作中,这可通过并发任务之间的父子关系实现。当在另一个协程的上下文中启动一个协程时,后者成为前者的子协程,父协程只有在所有子协程完成后才能完成,这就是结构化并发。
以下是一个示例代码:
import kotlinx.coroutines.*
fun main() {
runBlocking {
pri
超级会员免费看
订阅专栏 解锁全文
1120

被折叠的 条评论
为什么被折叠?



