python - 在单个 python 进程中混合绿色线程和 native 线程是否安全?

标签 python multithreading gevent eventlet green-threads

首先,将 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/

相关文章:

python - python random.choices 有偏见吗?

python - 多重继承自 QObject 和 QRunnable 错误

python - 如何反转seaborn散点图的调色板?

java 两个线程操作同一个数组

c++ - 在 C++11 中通过对 std::thread 的引用传递对象

java - 为 Swing 库强制使用 EDT 线程

python - gevent套接字如何只阻止当前的greenlet?

python - 将 AMQP 与 Graphite 9.9 结合使用

python - 使用 pyev 进行 epool 还是从 Python 中的 stdlib 中选择?

python - Bottle + gevent unicode编码错误