我正在编写一些产生相当多线程的代码(目前大约有 512 个,但将来可能会更高)。每个线程只执行少量操作,因此我希望将线程置于系统上的开销保持在最低限度。
我正在使用 设置堆栈大小pthread_attr_setstacksize()
,并且可以从中获得允许的最小堆栈大小PTHREAD_STACK_MIN
。但我的问题是:使用PTHREAD_STACK_MIN
线程堆栈大小是否安全?我该如何计算我需要多少堆栈?是否有任何隐藏的开销需要添加到我的计算中?
另外,我可以使用其他技术来减少线程对系统的负担吗?