Ant*_*ton 5 python concurrency multithreading gil greenlets
我现在已经阅读了几个小时,我可以完全弄清楚python多线程如何比单个线程更快.
这个问题真的源于GIL.如果有GIL,并且任何时候只有一个线程真正运行,那么多线程如何比单个线程更快?
我读到了GIL发布的一些操作(比如写入文件).是什么让多线程更快?
关于greenlets.这些如何帮助并发?到目前为止,我看到的所有目的都是在功能和较简单的屈服功能之间轻松切换.
编辑:世界上像Tornado这样的服务器如何处理成千上万的同时连接?
你是对的 - 当python等待C代码执行时,GIL被释放,这就是你如何获得一些加速.但是一次只能执行一行python.请注意,这是一个CPython(实现)细节,并不严格地说是语言python本身的一部分.例如,Jython和IronPython没有GIL,可以完全利用多处理器系统.
如果您需要在CPython中进行真正的并发编程,那么您应该考虑多处理而不是线程.
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |