Coroutine V.S. Thread

Tags
  • 线程:在多核CPU上可并行,抢占式调度,存在线程同步问题,需要避免竞态条件
  • 协程:可并发,用户态的轻量级线程,在单线程中运行,通过协作式调度实现非抢占式并发,通过挂起 (yield) 和 恢复 (resume) 切换执行
 
资源占用
协程栈空间通常很小,由程序控制
 
并发能力
线程适合CPU密集型,协程由于在单线程中运行,更适合I/O密集型