python - Python 线程什么时候快?

标签 python multithreading gil

我们都知道 GIL 的恐怖,并且我已经看到很多关于使用 multiprocessing 模块的正确时机的讨论,但我仍然觉得我对何时在 Python 中进行线程处理没有很好的直觉(主要关注 CPython ) 是正确答案。

GIL 在哪些情况下不是重大瓶颈?线程是最合适的答案的用例类型有哪些?

最佳答案

只有在有大量阻塞 I/O 时,线程才真正有意义。如果是这样,那么一些线程可以在其他线程工作时休眠。如果线程受 CPU 限制,您可能看不到多线程的好处。

请注意 multiprocessing模块,虽然更难编码,但使用单独的进程,因此不会遭受 GIL 的缺点。

关于python - Python 线程什么时候快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8994438/

相关文章:

python - 如何找到 tarball 的一致散列

python - 如何在 python 中将键码转换为字符?

c - 如何让生产者线程和消费者线程交错运行

python - 在不同设置中使用以及引用 GIL 时,术语 I/O 会出现混淆

python - 在 Python 中安装包时 pip install tr​​aceback 错误

python - 向 reddit api 添加对 flair 的支持

java - 如何在 x 秒后处理 JOptionPane

c++ - std::condition_variable::wait_for 和 std::condition_variable::wait_until 有什么区别?

Python 和 C/C++ 多线程 : run several threads executing python in the background of C

python - numpy 数组上的可分离过滤器