协程(Coroutine)

Last modified: 2025/07/23

应用程序经常需要同时执行多个任务, 例如响应用户输入, 装载数据, 或更新画面. 为了实现这些功能, 它们依赖于并发, 并发能够允许操作独立运行, 相互不会阻塞.

并发运行任务的最常见方式是使用线程, 线程是由操作系统管理的独立的执行路径. 但是, 线程相对来说比较重, 而且创建太多线程可能导致性能问题.

为了支持高效的并发, Kotlin 使用基于 协程(Coroutine) 构建的异步编程技术, 让你能够使用挂起函数(Suspending Function), 以一种自然的, 顺序的方式编写异步代码. 协程是线程的轻量替代方案. 可以挂起, 而不阻塞系统资源, 并且消耗较少的资源, 因此更适合于细粒度的并发.

大多数协程功能由 kotlinx.coroutines 库提供, 这个库包含各种工具, 用于启动协程, 处理并发, 使用异步的流, 等等.

如果你是 Kotlin 协程的初学者, 请先阅读 协程的基本概念 向导, 然后在深入了解更复杂的内容. 这篇向导通过简单的示例, 介绍一些关键概念, 包括挂起函数, 协程构建器, 以及结构化并发:

协程入门