Missmiaom
4/17/2020 - 3:04 PM

共享栈

共享栈

libco 协程的主要特点是每个协程都有独立的栈,所有的局部变量等信息都会保存在栈上。

在协程切换时,会计算运行栈bp到sp的距离,即当前栈帧大小,然后在共享栈上获取(malloc?)相同大小的内存,保存栈帧信息。

共享栈的优点:

  1. 解决为每个协程固定分配相同大小栈的内存时造成的浪费,节省空间。
  2. 由于栈帧内容很少,所以分配拷贝的影响较小。