我想知道窗口提供的光纤。
我们假设我创造了4根光纤。
fiber1 - fiber2 - fiber3 - fiber4
^
光纤1现在线程执行。一个……
SwitchToFiber 就好像 longjmp ,和 CreateFiber 就像是一个扩展版本 setjmp 分配额外的堆栈空间。 DeleteFiber 就像一个 free 分配的上下文块的 setjmp 。最重要的是,捐赠者不会自己做任何事情 longjmp 就像C斤的扩展版本 goto ,例如类似于gcc计算goto扩展,除了它可以在跳转时切换堆栈。您可以轻松地模拟光纤(非便携式) setjmp , longjmp 还有一些 alloca 。
SwitchToFiber
longjmp
CreateFiber
setjmp
DeleteFiber
free
goto
alloca