每个线程都有自己的堆栈吗?

时间:2013-08-21 06:24:27

标签: c++ c multithreading pthreads stack

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

1 个答案:

答案 0 :(得分:11)

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

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