Process 使用线程时进程用户空间中的堆栈数

Process 使用线程时进程用户空间中的堆栈数,process,pthreads,stack,Process,Pthreads,Stack,当使用pthread_create()时,在进程用户空间中为每个pthread创建一个单独的堆栈 这是否意味着如果我在main()内调用pthread_create()N次,那么进程内的实际线程数以及相应的用户空间内的堆栈数将是N+1 我只是被这张照片弄糊涂了 因为它不显示main()的任何堆栈 谢谢,main()也是一个线程。如果不是,它将无法执行,因此无法执行任何操作:) 所以,是的。如果在main()中创建N个线程,那么最终会有N+1个线程,因此,会有N+1个堆栈。感谢您的回答,还有一个

当使用pthread_create()时,在进程用户空间中为每个pthread创建一个单独的堆栈

这是否意味着如果我在main()内调用pthread_create()N次,那么进程内的实际线程数以及相应的用户空间内的堆栈数将是N+1

我只是被这张照片弄糊涂了

因为它不显示main()的任何堆栈

谢谢,main()也是一个线程。如果不是,它将无法执行,因此无法执行任何操作:)


所以,是的。如果在main()中创建N个线程,那么最终会有N+1个线程,因此,会有N+1个堆栈。

感谢您的回答,还有一个问题,虚拟内存会产生一种错觉,即进程可能会使用整个0-(2^32-1)虚拟地址空间,假设我们有32位系统;这是否意味着单个进程中的每个线程都有一个拥有0-(2^32-1)个虚拟地址空间的假象?我猜,如果每个进程都有一个使用整个虚拟地址空间的假象,并且有多个线程在自己内部运行,那么,每个线程也有一种错觉,即除了同一进程中其他线程的堆栈区域之外,还拥有整个虚拟地址空间?