什么是协程(Coroutine)
- 简单来说,协程像是轻量级的线程,但并不完全是线程。
- 首先,协程可以让你顺序地写异步代码,极大地降低了异步编程带来的负担;
- 其次,协程更加高效。多个协程可以共用一个线程。一个 App 可以运行的线程数是有限的,但是可以运行的协程数量几乎是无限的;
协程实现的基础是可中断的方法(suspending functions)。可中断的方法可以在任意的地方中断协程的执行,直到该可中断的方法返回结果或者执行完成。 运行在协程中的可中断的方法(通常情况下)不会阻塞当前线程,之所以是通常情况下,因为这取决于我们的使用方式。具体下面会讲到。