Kotlin on JVM 协程的可重入实现

1. 协程?

协程的优势就是上下文切换的优势,不用打扰到操作系统。用户自己实现协程的切换。协程可以主动让出线程的能力,让Runtime进行调度。而面对线程而言,通常不是主动让出的,而是被操作系统强制调度。操作系统是感知不到Runtime层面的协程的,也不关心是不是正在进行协程调度。线程的现场信息由操作系统维护,协程的现场信息由Runtime来维护。

  • Kotlin on JVM 的“协程”,不是真正意义上的协程 ?
  • 效果上,比在Java线程池的的Runable基础上面,Runable 不具备暂停调度可恢复的特性。Runable从开始到结束一直占用当前线程,不管是runing还是wait,而Kotlin在协程”wait“的时候,会释放当前线程。
阅读更多