线程和进程都有独立的堆栈吗?如果答案是肯定的,那么它们之间有什么区别? 提前谢谢!
答案 0 :(得分:7)
进程没有堆栈。线程呢。进程通常是地址空间,一些资源和一个或多个线程。线程运行进程的实际代码,因此它们每个都有自己的堆栈。
有关堆栈的wiki文章有更多信息http://en.wikipedia.org/wiki/Call_stack
答案 1 :(得分:-1)
据我所知(并纠正我,如果我错了),每个进程都有自己的内存空间,其中包含3个段:文本段(即程序),数据段(就我而言)知道它是全局和静态变量),堆栈段包含许多东西,如局部变量,函数的参数,函数应该返回的地址。
每个进程可能有一个或多个线程。进程的线程共享进程的内存空间,它们不“拥有”自己的内存,这使得它们易于创建和终止。
让我们概括一下: 该进程有自己的堆栈,该线程没有自己的堆栈。
如果我错了,请随时纠正我。
实际上,Tanenbaum先生的书“操作系统”涵盖了这个问题。