<分区>
有人告诉我,由于 GIL,在 Python 中使用线程不是一个好习惯。我认为创建线程的开销只会减慢速度并最终使其比单线程应用程序慢。 那么,为什么Python首先要有线程库呢?什么时候应该使用线程?
(我假设是 Python3)
标签 python python-3.x
<分区>
有人告诉我,由于 GIL,在 Python 中使用线程不是一个好习惯。我认为创建线程的开销只会减慢速度并最终使其比单线程应用程序慢。 那么,为什么Python首先要有线程库呢?什么时候应该使用线程?
(我假设是 Python3)
最佳答案
@kindall 在他的评论中给出了答案。
多线程不是加速任何处理的神奇工具。这是一种在系统中同时存在多个线程的方法。它可以用于在多个内核上拆分处理以进行计算绑定(bind)处理(由于全局解释器锁,这个不在 CPython 中)。但它也可以用于 io-bound 处理:一个线程运行而其他线程等待 io 完成。一个很好的例子是多线程 TCP 服务器,其中每个线程可以服务于不同的客户端连接。 CPython 实现在这里很好,因为 GIL 没有理由阻塞已经在 io 级别阻塞的线程。
结束一般的多线程:它不应该永远用于内存绑定(bind)处理...
关于python - 什么时候在 Python 中使用线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568198/