c++线程数量的限制
C++線程數(shù)量的限制
- 限制
- 修改限制
限制
線程的數(shù)量取決于線程棧空間的大小(可以使用ulimit -s查看棧空間大小)
132位Linux下(可以使用getconf LONG_BIT查看當(dāng)前CPU運(yùn)行在多少位的模式下),用戶空間是3G,因此可創(chuàng)建的線程數(shù)量為3G/stack_size,但是理論上除了棧空間每個(gè)線程還有線程控制塊的開(kāi)銷(xiāo),所以實(shí)際值會(huì)小一些
修改限制
?使用ulimit -s 新棧空間大小修改默認(rèn)棧空間大小
1.可以在/etc/rc.local 內(nèi) 加入 ulimit -s 新棧空間大小 則可以開(kāi)機(jī)就設(shè)置棧空間大小
?通過(guò)/etc/security/limits.conf 改變棧空間大小: # #添加下列行 * soft stack 新棧空間大小 重新登錄,執(zhí)行ulimit -s 即可看到改為新棧空間大小
ulimit命令只對(duì)當(dāng)前終端生效。如果需要永久生效:1)將命令寫(xiě)至profile和bashrc中,相當(dāng)于在登錄時(shí)自動(dòng)動(dòng)態(tài)修改限制;2)在/etc/security/limits.conf中添加記錄(需重啟生效,并且在/etc/pam.d中的session有使用到limit模塊)
linux下進(jìn)程的最大線程數(shù)、進(jìn)程最大數(shù)、進(jìn)程打開(kāi)的文件數(shù)
linux查看修改線程默認(rèn)棧空間大小
總結(jié)
以上是生活随笔為你收集整理的c++线程数量的限制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。