协程进阶:上下文 09. 合并上下文元素

本篇解析 example-context-09.kt。学习如何灵活定义协程环境。

1. 核心操作符:+

你可以使用 + 操作符来组合多个上下文元素。

代码解析:

1
2
3
launch(Dispatchers.Default + CoroutineName("test")) {
println("I'm working in thread ${Thread.currentThread().name}")
}
  • 组合结果:该协程会运行在 Dispatchers.Default 线程池中,且其调试名称为 “test”。

2. 开发者感悟

+ 号操作符让上下文的管理变得极其灵活。你可以根据需要,将调度器、Job、名称以及异常处理器拼接在一起。这就像是拼积木,你可以随心所欲地定制每一个异步任务的执行环境。

,