線程與進程通常是
回答
當一個進程被創建時,它被分配堆和堆棧內存。另一方面,線程只獲得堆棧並與父進程共享堆。這意味着即使您只考慮內存分配,創建進程比線程更「昂貴」。
子進程只是由另一個進程創建的進程。他們是獨立的並且擁有自己的記憶空間。這裏是an article that goes into some more detail。
回答這個問題可能是非常依賴於操作系統的,但一般規則:
過程的線程住在同一個虛擬內存空間爲他們的父母。因此,創建線程比創建進程要便宜,因爲底層操作系統不需要創建完整的虛擬內存空間。
一個子進程只是父進程產生的另一個進程。
如果子進程是父進程的副本,它是否不共享相同的虛擬內存空間? – user559142 2011-05-14 18:41:43
@ user559142否;這是區分的一點。 – 2011-05-14 18:43:02
子過程只是生活在自己空間中的另一個過程。 :) – sitifensys 2011-05-14 18:48:15
- 1. 進程與線程之間的通信
- 2. 進程與線程
- 3. Qt進程如何與正常的Linux進程進行通信?
- 4. Windows C++進程與線程
- 5. 線程與子進程
- 6. 線程還是多進程?
- 7. 與主線程溝通工作線程
- 8. NullPointerException異常與多線程
- 9. Windows線程異常,附加進程和擁有進程
- 10. 這些進程中的線程數是否正常?
- 11. 如何檢查進程是否與另一進程通信?
- 12. 線程與進度條
- 13. 與來自MVC應用程序的線程進行通信?
- 14. 多線程。線程異常
- 15. 扭曲的線程與子進程.Popen?
- 16. Python請求 - 線程/進程與IO
- 17. 線程與Python中的進程
- 18. 守護進程線程是否也是守護進程線程啓動的線程?
- 19. 線程與線程
- 20. 通過啓動多個進程,而不是使用線程
- 21. 線程與通用列表
- 22. Java線程通知()與notifyAll()
- 23. Python關閉所有線程或進程與子進程.Popen
- 24. 通過服務線程進行通信
- 25. Python通過線程進行通信tkinter
- 26. 是否可以通過subprocess.Popen與子子進程進行通信?
- 27. Ctrl + C:它是否與主進程一起殺死線程?
- 28. Python多進程而不是線程?
- 29. 進程線程是否安全?
- 30. 線程和進程?
但不是子進程分享它的父母記憶? – user559142 2011-05-14 18:38:26
@user:一般來說,沒有。 – 2011-05-14 18:41:36
好吧,所以唯一的主要成本是內存分配? – user559142 2011-05-14 18:43:02