gpt4 book ai didi

multithreading - 通常为一个线程保留多少堆栈空间? (POSIX/OSX)

转载 作者:行者123 更新时间:2023-12-03 13:17:30 24 4
gpt4 key购买 nike

答案可能因操作系统而异,但我很好奇一个线程通常会预分配多少堆栈空间。例如,如果我使用:

push rax

这将在堆栈上放置一个值,并增加 rsp。但是,如果我从不使用 push op怎么办?我想仍然分配了一些空间,但是多少呢?另外,这是固定数量还是随着 push ed数量的增加而动态增长?

最佳答案

POSIX没有定义有关堆栈大小的任何标准,它完全取决于实现。由于您已标记此OSX,因此默认分配为:

  • 主线程(8MB)
  • 辅助线程(512kB)

  • 当然,可以将这些配置为适合您的需求。分配是动态的:

    The minimum allowed stack size for secondary threads is 16 KB and the stack size must be a multiple of 4 KB. The space for this memory is set aside in your process space at thread creation time, but the actual pages associated with that memory are not created until they are needed.



    这里没有太多细节。我建议你读:

    Thread Management (Mac Developer Library)

    关于multithreading - 通常为一个线程保留多少堆栈空间? (POSIX/OSX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23608963/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com