線程和進程是否都有獨立的堆棧?如果答案是肯定的,他們之間有什麼區別? 在此先感謝!線程堆棧和進程堆棧有什麼區別
5
A
回答
7
進程沒有堆棧。線程可以。一個進程通常是一個地址空間,一些資源和一個或多個線程。線程運行進程的實際代碼,以便它們各自擁有自己的堆棧。
上堆維基文章的詳細信息http://en.wikipedia.org/wiki/Call_stack
-1
據我所知(和糾正我,如果我錯了),每個進程都被賦予它自己的內存空間,其中包含3個部分:文字segement(即程序),數據段(據我所知它是全局變量和靜態變量),棧段包含許多東西,如局部變量,函數的參數,函數應該返回的地址。
每個進程可能有一個或多個線程。進程的線程共享進程的內存空間,他們不「擁有」自己的記憶,這使得他們很容易創建和終止。
讓我們來概括一下: 進程有他自己的堆棧,線程沒有他自己的堆棧。
如果我錯了,隨時糾正我。
其實,塔恩鮑姆先生的書「操作系統」涵蓋了這個問題。
相關問題
- 1. 進程堆棧和CPU堆棧有什麼區別?
- 2. 堆棧和堆棧幀有什麼區別?
- 3. 線程堆和堆棧
- 4. 堆棧旁邊有什麼線程
- 5. 繪製堆棧和線程程序堆
- 6. dword和彙編程序中的'堆棧'有什麼區別
- 7. 堆棧和堆之間有什麼區別?
- 8. 線程堆棧上存儲了什麼?
- 9. 堆棧溢出和緩衝區溢出有什麼區別?
- 10. 什麼「堆棧無效,堆棧只支持堆棧1和堆棧5」是什麼意思?
- 11. 全堆棧,堆棧交換等,什麼是堆棧?
- 12. 描述堆棧和列表堆棧之間的區別?
- 13. 線程的奇怪堆棧
- 14. 線程堆棧指針
- 15. 線程堆棧錯誤
- 16. 線程堆棧分配
- 17. 在macOS當前進程中識別堆棧和堆段
- 18. JVM - 堆棧和堆棧
- 19. 打印一個進程的所有線程的線程堆棧
- 20. 設置堆棧大小,以線程似乎沒有什麼區別android
- 21. 有關線程和進程堆棧的一個簡單問題
- 22. 碼頭服務和堆棧有什麼區別?
- 23. 堆棧跟蹤和回溯之間有什麼區別?
- 24. 分段錯誤和堆棧溢出有什麼區別?
- 25. 任務和活動堆棧:兩者之間有什麼區別。
- 26. TCL命名空間和堆棧幀有什麼區別?
- 27. 爲什麼堆棧有界?
- 28. 線程安全方法和堆棧
- 29. Python堆棧溢出tkinter和線程
- 30. 沒有堆棧的Linux線程