24

当我从一个进程创建多个线程时,每个线程都有自己的堆栈,还是它们共享父进程的堆栈。当线程进行系统调用时会发生什么?线程是否也像进程一样维护自己的内核堆栈?

4

1 回答 1

19

是的,线程有自己的堆栈和自己的内核堆栈(例如linux)。

当线程进行系统调用时,您陷入内核模式(从用户模式),将参数传递给内核,检查参数,内核执行它需要做的事情(在内核堆栈中),返回最终值返回给线程,然后您返回用户模式。

于 2013-08-21T06:29:12.690 回答