gpt4 book ai didi

c - Pthreads:主线程和子线程栈大小的关系

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:07 28 4
gpt4 key购买 nike

我想了解 Linux 中 pthreads 库的堆栈分配。这里有几个问题:

A) 什么是主线程? - 那是运行 C main() 程序的线程吗?

B) 主线程的堆栈分配是多少?那是 ulimit -s 大小吗?

C) 子线程的堆栈分配是多少?那是 ulimit -s 大小吗?

D) 主线程和其他线程的栈大小是依赖的 ?

E) 进程栈和线程栈是共享的?我如何决定进程堆栈(比如 a.out)的大小。

F) 这些信息在 NPTL 和 LinuxThreads 实现之间是否有所不同?

谢谢

最佳答案

答:是的
乙:是的
C:也许吧。

如果在创建线程时使用的 pthread_attr_t 没有指定堆栈大小,并且如果 ulimit -s 不是无限制的,那么 ulimit -s 将确定一个新线程的堆栈大小创建线程。

D:问题不清楚。它们彼此不依赖,但在特定条件下它们都依赖于 ulimit -s

E.是和不是。它们在内存可见性的意义上是共享的——主线程可以读取和写入其他线程的堆栈变量,反之亦然。但是每个线程都在自己的堆栈上执行,如果两个线程开始在同一个堆栈上执行,那将是一场灾难。

F.没有。

关于c - Pthreads:主线程和子线程栈大小的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11272137/

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