在生成新線程的情況下如何分配內存,即內存堆,內存堆棧和線程是如何關聯的?我知道這是根本(.net框架概念),但不知何故,我對這個概念並不瞭解。線程堆和堆棧
Q
線程堆和堆棧
7
A
回答
2
很難回答這個問題,因爲.Net線程的實現方式。託管線程和相應的本地線程之間不一定有1-1實現。 CLR可以自由使用多個本地線程來實現單個託管線程。因此,分配一個新的託管線程不一定會導致生成本地線程。它可以簡單地假定現有的。
你能告訴我們爲什麼這是你關心的嗎?也許這會讓我們得到更好的答案。
0
每個線程都有自己的堆棧,但所有線程共享堆。
1
堆棧屬於線程上下文。堆屬於進程,因此它在線程之間共享。
1
它比.net更深層次。線程是OS本機對象。所謂的託管線程只是本地線程的包裝。
所以回到你的問題。內存堆在相同進程的線程間共享,因爲它們位於單個虛擬內存空間中。堆棧是個人的。
相關問題
- 1. 繪製堆棧和線程程序堆
- 2. 線程堆棧和進程堆棧有什麼區別
- 3. JVM - 堆棧和堆棧
- 4. OOP和堆/堆棧
- 5. 塊,堆棧和堆
- 6. 線程的奇怪堆棧
- 7. 線程堆棧指針
- 8. 線程堆棧錯誤
- 9. 線程堆棧分配
- 10. 看到應用程序線程使用的堆棧和堆量
- 11. 線程安全方法和堆棧
- 12. Python堆棧溢出tkinter和線程
- 13. C程序的堆棧和堆內存
- 14. 在PHP中堆棧和堆?
- 15. 堆棧和堆查看器
- 16. 塊+ ARC,堆棧和堆
- 17. 堆棧幀和堆棧指針
- 18. 任務堆棧和背堆棧在android
- 19. 內存分配,堆棧和堆棧
- 20. 堆棧或堆
- 21. 過程遞歸和堆棧
- 22. 希望堆棧堆棧?
- 23. 使用C/C++/Java程序理解堆棧和堆棧
- 24. 進程堆棧和CPU堆棧有什麼區別?
- 25. 字符堆棧,字符串堆棧,整數堆棧,整數數組堆棧等
- 26. pthread_cancel釋放線程堆棧嗎?
- 27. 堆棧旁邊有什麼線程
- 28. 安全線程堆棧大小?
- 29. 如何轉儲線程堆棧
- 30. 線程之間同步堆棧
我覺得ms windows CLR線程的實現非常接近native。請指定非1-1映射的例子。 – Andrey 2010-03-15 16:20:53
@Andrey不幸的是不是這種情況。考慮在2.0中添加Thread.ManagedThreadId。此屬性是爲了區分託管線程和潛在的許多本地支持者而精確添加的。 – JaredPar 2010-03-15 16:22:51
@Andrey(續)當託管線程是一個STA我不相信CLR可以或將會改變本地線程,因爲COM對象創建將具有線程親和力的本地線程。但是在MTA中沒有親和力問題,CLR可以自由更改後備本地線程。 – JaredPar 2010-03-15 16:23:44