标签: c++ c multithreading pthreads stack
当我从进程创建多个线程时,每个线程是否都有自己的堆栈,或者它们是否共享其父进程的堆栈。线程进行系统调用时会发生什么?线程是否也像进程一样维护自己的内核堆栈?
答案 0 :(得分:11)
是线程有自己的堆栈和自己的内核堆栈(例如linux)。
当一个线程进行系统调用时,你陷入内核模式(从用户模式),你将参数传递给内核,检查参数,内核做它需要做的事情(在内核堆栈中) ),将最终值返回给线程,然后返回用户模式。