23,121
社区成员
发帖
与我相关
我的任务
分享
现在想问个小白的问题。
首先我知道每个进程都会创建很多线程去执行具体的代码,所以线程越多,栈内存的分配就越多。
我想问的问题是,多线程环境下栈内存的分配是否也需和内核交互呢(之前我很清楚,堆内存是需要调用零环的api申请的)?也是通过零环的API调用获取的么?
没错,当调用, pthread_create() pthread_attr_setstack()这些函数时,最后都需要调用操作系统的零环的API分配内存,但大部分的工作其实都是由pthread/libc实现的,(因为零环的API比较primitive,功能不强),当然,也可以使用linux 工具 strace 来打印出具体的syscall