我很好奇Python中的全局解釋器鎖怎樣工作。如果我有一個C++應用程序啓動,python腳本的四個獨立實例將在不同核心上並行運行,或者GIL更深入一些,那麼啓動的單個進程就可以控制所有python進程,而不管產生它的進程?運行單獨的python進程避免GIL嗎?
9
A
回答
20
GIL隻影響單個進程中的線程。 multiprocessing
模塊實際上是threading
的替代方案,它允許Python程序使用多個內核& c。您的方案也可以輕鬆地使用多個內核。
1
由於Alex Martelli指出你確實可以通過運行多個進程來避免GIL,我只想添加並指出GIL是實現(CPython)的限制,而不是Python的一般限制,可以沒有這個限制實現Python。想起了Stackless Python。
相關問題
- 1. 如何避免進程的shell執行?
- 2. 如何避免兩個進程並行運行
- 3. 馬科避免python進口
- 4. 避免守護進程運行在專用的cpu內核中
- 5. 避免進程關閉使用python子進程模塊
- 6. 單獨在CPU上啓動的進程無法避免上下文切換
- 7. 如何從android本機二進制運行單獨的進程?
- 8. 避免宏單獨的聲明從執行
- 9. 在Qt中運行單獨的進程或線程
- 10. 如何在服務器上單獨運行一個函數(避免minimongo)?
- 11. 避免在python
- 12. 如何在python中獨立運行不同的子進程?
- 13. 在Python中避免縮進else ELIF
- 14. Python Tkinter在不同的線程上運行子進程以避免不響應的GUI
- 15. MediaPlayer應該在單獨的線程中運行嗎?
- 16. 避免在Python中進行昂貴的計算IRC bot
- 17. Android服務作爲一個單獨的進程運行
- 18. Java:在單獨的進程中運行一個Callable
- 19. 在單獨的進程中運行.net代碼
- 20. 在java web服務器上運行單獨的後臺進程
- 21. 的Android - 從在單獨進程中運行
- 22. 避免重新運行的遷移
- 23. 如何避免爲跳過的Python單元測試運行設置方法
- 24. Unix進程運行python
- 25. 避免python輸出中的換行
- 26. 運行在單獨的線程
- 27. BeginInvoke()是否運行單獨的線程?
- 28. 避免單元測試(NUnit的)中運行的功能
- 29. 使用Popen獨立運行python子進程
- 30. 應該避免使用PTHREAD_MUTEX_INITIALIZER進行pthread_mutex靜態初始化嗎?
你確定今天幫助我很多。謝謝! – whatWhat 2009-06-14 04:11:18
非常歡迎! – 2009-06-14 04:12:09