0

我想到的情况是使用可以回调python的python扩展模块,因此当greenlet产生时可能会混合使用python和非python堆栈帧。

我假设如果一个模块使用线程本地存储,它很可能与 greenlets 行为不端。

线程安全模块可能不是greenlet安全的还有其他原因吗?

编辑:我真正想知道的是,greenlets 和常规线程的上下文切换方式是否有区别。greenlets 是否采用任何可能适用于 python 但会破坏某些扩展模块的捷径?

4

1 回答 1

1

Greenlets 留在 Python 中的单个线程中。他们不能跳入另一个线程。因此,如果您的代码是正确的线程安全的,那么它将是 greenlet 安全的。

另一种看待它的方式是,greenlets 一次只执行一个,所以你几乎没有像线程这样的问题。

于 2015-06-25T21:11:03.333 回答