首先,将 eventlet 或 gevent 等绿色线程与标准库中的 python 原生线程(即 Lib/threading.py)混合在同一个 python 进程中是否安全?
其次,如果它是安全的,它是不是一个坏主意?
最佳答案
与 gevent < 1.0
这很可能是个坏主意,因为 libevent
不是线程安全的。如果您确保操作系统线程从不与 libevent
交互,您可能会没事......但这可能很棘手,并且由 libevent
引起的错误缺乏线程安全听起来调试起来没有任何乐趣。
然而,gevent >= 1.0
使用 libev
,这是完全线程安全的。所以(据我所知)混合绿色线程和操作系统线程没有问题。
关于python - 在单个 python 进程中混合绿色线程和 native 线程是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9639466/