【问题标题】:What can go wrong if threads had to use process's stack?如果线程必须使用进程的堆栈,会出现什么问题?
【发布时间】:2018-04-18 07:58:21
【问题描述】:

为什么线程有自己的堆栈?为什么线程不能与所有其他资源共享进程的堆栈?最重要的是,如果线程必须使用进程的堆栈,会出现什么问题?

【问题讨论】:

    标签: multithreading pthreads


    【解决方案1】:

    有很多原因,但最重要的是(没有优化将东西放在 CPU 寄存器中),函数调用的参数、返回值和返回地址在堆栈上传递。因此,每个线程因此需要自己的堆栈。堆当然是常见的,需要通过例如保护。使用原子或互斥体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多