我正在编写一些代码,会创建许多线程(目前大约有512个,但将来可能会更高)。每个线程只执行少量操作,因此我希望线程对系统的开销最小化。
我正在使用
此外,还有其他技术可以用来减轻线程对系统的负担吗?
我正在使用
pthread_attr_setstacksize()
设置堆栈大小,并且可以从 PTHREAD_STACK_MIN
获取允许的最小堆栈大小。但我的问题是:是否安全使用 PTHREAD_STACK_MIN
作为线程堆栈大小? 我该如何计算需要多少堆栈?是否有任何隐藏的开销需要添加到我的计算中?此外,还有其他技术可以用来减轻线程对系统的负担吗?
select
等技能水平),但如果我的线程将花费 99.8% 的时间等待网络 I/O,那么我会需要500个线程。有时候内存比程序员便宜,有时候则不是;-) - Steve Jessop