2009-06-14 45 views
9

我很好奇Python中的全局解釋器鎖怎樣工作。如果我有一個C++應用程序啓動,python腳本的四個獨立實例將在不同核心上並行運行,或者GIL更深入一些,那麼啓動的單個進程就可以控制所有python進程,而不管產生它的進程?運行單獨的python進程避免GIL嗎?

回答

20

GIL隻影響單個進程中的線程。 multiprocessing模塊實際上是threading的替代方案,它允許Python程序使用多個內核& c。您的方案也可以輕鬆地使用多個內核。

+1

你確定今天幫助我很多。謝謝! – whatWhat 2009-06-14 04:11:18

+0

非常歡迎! – 2009-06-14 04:12:09

1

由於Alex Martelli指出你確實可以通過運行多個進程來避免GIL,我只想添加並指出GIL是實現(CPython)的限制,而不是Python的一般限制,可以沒有這個限制實現Python。想起了Stackless Python