协程 的 主要作用 是 让 单核 GC 变成 单线程 GC

2022/4/23 6:12:48

本文主要是介绍协程 的 主要作用 是 让 单核 GC 变成 单线程 GC,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

协程 的 主要作用 是 让 单核 GC 变成 单线程 GC,     这样, 在 单核 范围 内,  GC 要 工作 时,  不需要 挂起 线程,   只需要 挂起 协程,

 

挂起 n 个 协程 比 挂起  n 个 线程 的 开销 低 很多,   最起码,   挂起 线程 需要跟 操作系统 通信,    而 挂起 协程 纯粹 是 一个 线程 内 的 一些 代码 执行  。

 

另外,   因为 n 个 协程 都 只是 一个 线程 内 的 代码 执行,   因此,   可以 对 这些 代码 进行 各种 优化, 就像 优化 普通 的 代码,  一些 函数调用,  包括 内联 和 寄存器优化,   且 可以 减少内存屏障 的 使用次数  。

 

但 想了一下,   协程 不能 减少 内存屏障 的 使用次数,

 

要 深化 内联 和 寄存器优化 的 程度,  减少 内存屏障 使用次数,  应该是 把 多个任务编译 成 由 一个 状态机 来执行,   比如  .Net / C#   async await,    但 其实 这个技术 很勉强  。

 



这篇关于协程 的 主要作用 是 让 单核 GC 变成 单线程 GC的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程