在多个PyFrameObjects中切换是否可以很好地实现continuations?

2024-09-30 02:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我对continuations感兴趣,特别是Python的C-API。据我所知,continuations的本质要求不抽象底层调用约定,以便根据需要操纵调用堆栈。我很幸运地遇到了一些分散的herethere的例子。在我遇到的几个例子中,这种非抽象是使用聪明的C(对环境进行假设)或自定义汇编来完成的。你知道吗

然而,Python的酷之处在于它有自己的由PyFrameObject组成的解释器堆栈。假设现在是单线程应用程序,仅仅切换PyFrameObjects就足以在Python的C-API中实现连续性了吗?为什么这些作者还要为那些低级的东西操心呢?你知道吗


Tags: api应用程序here环境堆栈解释器感兴趣例子
1条回答
网友
1楼 · 发布于 2024-09-30 02:20:49

生成器通过操纵帧对象的堆栈(实际上是链表)来工作。但这只对纯Python代码有帮助。如果你的代码有任何C代码在运行,这对你没有帮助。例如,如果在I/O例程中使用C代码,则不能更改Python框架对象以使执行转到其他地方。为了做到这一点,您必须能够更改C堆栈。这就是像greenlet这样的软件包对你的作用。你知道吗

相关问题 更多 >

    热门问题