线程安全在Python中通常意味着绿色安全吗?



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

我认为,如果一个模块使用线程本地存储,它很可能与greenlet行为不当。

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

编辑:我真正想知道的是上下文切换的方式是否有任何区别,为greenlet与常规线程实现。greenlet是否采取任何可能适用于python的快捷方式,但会中断某些类型的扩展模块?

在Python中,greenlet保持在单个线程中。他们不能跳转到另一个线程。因此,如果你的代码是线程安全的,它将是greenlet安全的。

另一种看待它的方式是,greenlet一次只执行一个,所以你很少有像线程那样的问题。

相关内容

  • 没有找到相关文章

最新更新