为什么协程切换的代价比线程低

主要在于 线程切换需要借助内核完成,意味着 用户态 --> 内核态 --> 用户态,
而协程切换 只在用户态就可以完成, 用户态 --> 用户态

用户态和内核态的切换 是一部分的开销

切换频率,线程切换频率比协程切换的频率高很多, 因为协程库大多都在 IO 阻塞才切换

还有

协程是串行的,线程是并行的,协程是自主让渡执行时间,而且都跑在一个核心上,不需要复杂的调度算法,不需要优先级管理,而线程,其自身不让渡核心时间,还有优先级。 操作系统需要像指挥交通那样指挥,所以耗时。

posted @ 2020-03-16 15:59  九角冰山  阅读(801)  评论(0编辑  收藏  举报