进程没有堆栈,线程有。进程通常是一个地址空间、一些资源和一个或多个线程。线程运行进程的实际代码,因此它们各自拥有自己的堆栈。关于堆栈的维基百科文章提供了更多信息http://en.wikipedia.org/wiki/Call_stack。
据我所知(如果我错了,请纠正我),每个进程都有自己的内存空间,其中包含3个段:文本段(即程序)、数据段(据我所知是全局和静态变量)和堆栈段,其中包含许多东西,如局部变量、函数参数、函数应返回的地址等。每个进程可能有一个或多个线程。进程的线程共享进程的内存空间,它们没有自己的内存,这使它们易于创建和终止。让我们总结一下: 进程有自己的堆栈,线程没有自己的堆栈。如果我对此有误,请随时纠正我。实际上,Tanenbaum先生的书《操作系统》涵盖了这个问题。