23,121
社区成员
发帖
与我相关
我的任务
分享
现在想问个小白的问题。
首先我知道每个进程都会创建很多线程去执行具体的代码,所以线程越多,栈内存的分配就越多。
我想问的问题是,多线程环境下栈内存的分配是否也需和内核交互呢(之前我很清楚,堆内存是需要调用零环的api申请的)?也是通过零环的API调用获取的么?
栈内存一般不需要调用 API 动态分配,直接定义 local 变量就是了。
当然,栈页面自动向下增长,会触发缺页异常,需要内核处理。其他情况分配、回收基本是编译器的事情。