线程堆栈和进程堆栈之间的区别是什么

时间:2010-01-25 11:15:43

标签: operating-system

线程和进程都有独立的堆栈吗?如果答案是肯定的,那么它们之间有什么区别? 提前谢谢!

2 个答案:

答案 0 :(得分:7)

进程没有堆栈。线程呢。进程通常是地址空间,一些资源和一个或多个线程。线程运行进程的实际代码,因此它们每个都有自己的堆栈。

有关堆栈的wiki文章有更多信息http://en.wikipedia.org/wiki/Call_stack

答案 1 :(得分:-1)

据我所知(并纠正我,如果我错了),每个进程都有自己的内存空间,其中包含3个段:文本段(即程序),数据段(就我而言)知道它是全局和静态变量),堆栈段包含许多东西,如局部变量,函数的参数,函数应该返回的地址。

每个进程可能有一个或多个线程。进程的线程共享进程的内存空间,它们不“拥有”自己的内存,这使得它们易于创建和终止。

让我们概括一下: 该进程有自己的堆栈,该线程没有自己的堆栈。

如果我错了,请随时纠正我。

实际上,Tanenbaum先生的书“操作系统”涵盖了这个问题。