2025-11-20 06:20:01
线程自己有个专属的“记忆本子”,叫堆栈,专门记着当前执行的函数步骤和临时数据。比如你同时打开微信和浏览器,每个程序就像在用不同笔记本写作业,互不干扰。系统给每个线程的默认堆栈大小一般是1MB到8MB,具体看操作系统。比如Linux默认给线程8MB,Windows可能给1MB,这就像给不同笔记本准备的本子大小不一样。
为什么得这么设计呢?首先得保证多任务不卡脖子。假设两个线程同时执行,如果一个突然需要更多临时数据,堆栈不够就会崩溃,就像笔记本写满没地方写字。系统给固定大小是为了防止一个程序吃掉所有内存。比如服务器线程处理大量请求,8MB足够暂存数据;而嵌入式设备线程少,1MB就行。数据来源是Linux内核文档和微软开发者指南,里面明确写着默认堆栈分配规则。但要注意,有些程序会自己调大堆栈,比如Python解释器默认用1MB,但高并发场景可能需要调到4MB以上。就像你写作业时,普通作业用A4纸,复杂作业得用活页本一样。
本题链接: