Python GIL和多线程

Ale*_*.P. 4 python gil

我想将我的sigle-thread应用程序分成多个工作线程.只有一个问题 - 这个动作的表现怎么样?如果GIL阻止python当时执行多个线程,我会获得任何利润吗?

另一点(从c/c ++的角度来看) - 因为我知道每个线程,无论如何,只能执行,所以在比python解释器更低的层次我有相同的限制.

简介:python线程在部分任务切换中是否具有"本机"线程的效率较低?

Gre*_*ill 6

不要担心GIL.根据程序的类型(计算与I/O),您将拥有不同的性能特征.如果您的程序受I/O限制,那么您可能根本不会注意到GIL.

另一种方法是使用多处理模块,其中每个进程在其自己的OS进程中运行,并具有自己的Python运行时.您可以使用此方法充分利用多个内核,并且通常更安全,因为您不必担心同步对共享内存的访问.

  • @AlexG.P.:如果您只有一个可用的CPU,那么线程和多个进程都不会提高您在任何编程语言中的性能.这与Python和GIL无关. (7认同)