运行单独的python进程是否避免了GIL?

时间:2009-06-14 04:07:09

标签: python

我很好奇python中的Global Interpreter Lock实际上是如何工作的。如果我有一个c ++应用程序启动python脚本的四个单独实例将在不同的内核上并行运行,或者GIL是否更深入,然后只是启动的单个进程并控制所有python进程,无论生成它的进程如何?

2 个答案:

答案 0 :(得分:28)

GIL仅影响单个进程中的线程。 multiprocessing模块实际上是threading的替代方案,它允许Python程序使用多个核心& c。您的方案也很容易允许使用多个核心。

答案 1 :(得分:2)

正如Alex Martelli指出你确实可以通过运行多个进程来避免GIL,我只想添加并指出GIL是实现的限制(CPython)而不是Python的一般限制,它可以实现没有这个限制的Python。想到Stackless Python