我想知道如何定义一个有限状态机,它在 python 中使用 greenlet 循环而不会导致 stckoverflow。
来自https://greenlet.readthedocs.org/en/latest/:
“一个‘greenlet’是一个小的独立伪线程。把它想象成一小堆帧;最外面(底部)的帧是你调用的初始函数,最里面的帧是greenlet当前暂停的那个. 你通过创建许多这样的堆栈并在它们之间跳转执行来使用greenlet。跳转绝不是隐含的:一个greenlet 必须选择跳转到另一个greenlet,这将导致前者暂停,而后者从暂停的地方恢复。在greenlets之间跳跃被称为“切换”。”
我知道我需要更改状态,并且我可以拥有如图所示的 FSM:
在这种情况下,如何确保不会发生堆栈溢出?由于 greenlet 只给了我“一小堆框架”,我对使用它持怀疑态度。
这里是否需要遵循 fsm 设计范式来帮助回到早期的堆栈框架?
TIA