【发布时间】:2018-04-18 07:58:21
【问题描述】:
为什么线程有自己的堆栈?为什么线程不能与所有其他资源共享进程的堆栈?最重要的是,如果线程必须使用进程的堆栈,会出现什么问题?
【问题讨论】:
为什么线程有自己的堆栈?为什么线程不能与所有其他资源共享进程的堆栈?最重要的是,如果线程必须使用进程的堆栈,会出现什么问题?
【问题讨论】:
有很多原因,但最重要的是(没有优化将东西放在 CPU 寄存器中),函数调用的参数、返回值和返回地址在堆栈上传递。因此,每个线程因此需要自己的堆栈。堆当然是常见的,需要通过例如保护。使用原子或互斥体。
【讨论】: