2010-01-25 152 views

回答

7

進程沒有堆棧。線程可以。一個進程通常是一個地址空間,一些資源和一個或多個線程。線程運行進程的實際代碼,以便它們各自擁有自己的堆棧。

上堆維基文章的詳細信息http://en.wikipedia.org/wiki/Call_stack

-1

據我所知(和糾正我,如果我錯了),每個進程都被賦予它自己的內存空間,其中包含3個部分:文字segement(即程序),數據段(據我所知它是全局變量和靜態變量),棧段包含許多東西,如局部變量,函數的參數,函數應該返回的地址。

每個進程可能有一個或多個線程。進程的線程共享進程的內存空間,他們不「擁有」自己的記憶,這使得他們很容易創建和終止。

讓我們來概括一下: 進程有他自己的堆棧,線程沒有他自己的堆棧。

如果我錯了,隨時糾正我。

其實,塔恩鮑姆先生的書「操作系統」涵蓋了這個問題。