Python中的真正并行性

时间:2016-07-14 12:46:44

标签: python multiprocessing gil

由于GIL的存在,是否有可能在python中具有真正的并行性?据我所知,每个线程在执行之前获取GIL而其他线程一直等到GIL被释放。为什么GIL如果是这样一个瓶颈

2 个答案:

答案 0 :(得分:5)

Python,该语言不一定强制执行GIL。它是可能有也可能没有GIL的语言的不同实现。

CPython(事实上的实现)有GIL。因此,在您使用它时,您无法拥有真正的并行线程。但是,您可以使用多处理来获得并行性。 PyPy,该语言的另一个实现现在也有GIL。

还有其他Python语言的实现(例如Jython和IronPython),它们没有GIL,你可以使用线程来运行并行操作。

Cython有一个GIL但您可以使用@FXML public void initialize() { //unfocus pathField Platform.runLater( () -> root.requestFocus() ); } 语句释放它。

提到的项目链接:

有关此主题的更多资源:

答案 1 :(得分:1)

如果你想了解python中的GIL,我建议你开始阅读:

https://wiki.python.org/moin/GlobalInterpreterLock

请参阅消除GIL 部分,了解python仍然具有GIL的原因。