由于GIL的存在,是否有可能在python中具有真正的并行性?据我所知,每个线程在执行之前都会获取GIL,而其他线程则会等到GIL被释放。如果是这样的瓶颈,为什么会有吉尔呢?
发布于 2016-07-14 12:51:24
Python,该语言不一定会强制执行GIL。它是语言的不同实现,可能有也可能没有GIL。
CPython (事实上的实现)有GIL。因此,在使用它时,不可能有真正的并行线程。但是,您可以使用多个处理来获得并行性。PyPy,这个语言的另一个实现现在也有GIL。
Python的其他实现(例如Jython& IronPython )没有GIL,您可以使用线程运行并行操作。
Cython有一个GIL,但是您可以使用with语句发布它。
上述项目的链接:
关于这一主题的更多资源:
发布于 2016-07-14 12:57:37
如果您想了解python中的GIL,我建议在这里开始阅读:
https://wiki.python.org/moin/GlobalInterpreterLock
请参阅消除GIL一节,以了解python仍然拥有GIL的原因。
https://stackoverflow.com/questions/38374629
复制相似问题