我已经阅读了几个小时,但我仍然无法完全理解Python多线程是如何比单线程更快的。
这个问题实际上源于GIL。如果有GIL,并且任何时候只有一个线程在运行,那么多线程怎么可能比单线程更快呢?
我读到过一些操作会释放GIL(例如写入文件)。这是使多线程更快的原因吗?
至于greenlet,它们如何帮助并发呢?到目前为止,我看到它们的作用就是方便函数之间的切换和减少复杂的yield函数。
编辑:像Tornado这样的服务器如何处理成千上万个同时连接的请求?
我已经阅读了几个小时,但我仍然无法完全理解Python多线程是如何比单线程更快的。
这个问题实际上源于GIL。如果有GIL,并且任何时候只有一个线程在运行,那么多线程怎么可能比单线程更快呢?
我读到过一些操作会释放GIL(例如写入文件)。这是使多线程更快的原因吗?
至于greenlet,它们如何帮助并发呢?到目前为止,我看到它们的作用就是方便函数之间的切换和减少复杂的yield函数。
编辑:像Tornado这样的服务器如何处理成千上万个同时连接的请求?