绝代码农 发表于 2021-7-22 11:13:07

c++线程数量的限制

C++线程数量的限制

[*]限制
[*]修改限制
限制线程的数量取决于线程栈空间的大小(可以使用ulimit -s查看栈空间大小)
132位Linux下(可以使用getconf LONG_BIT查看当前CPU运行在多少位的模式下),用户空间是3G,因此可创建的线程数量为3G/stack_size,但是理论上除了栈空间每个线程还有线程控制块的开销,所以实际值会小一些
修改限制·使用ulimit -s 新栈空间大小修改默认栈空间大小
1.可以在/etc/rc.local 内 加入 ulimit -s 新栈空间大小 则可以开机就设置栈空间大小
·通过/etc/security/limits.conf 改变栈空间大小: # #添加下列行 * soft stack 新栈空间大小 重新登录,执行ulimit -s 即可看到改为新栈空间大小
ulimit命令只对当前终端生效。如果需要永久生效:1)将命令写至profile和bashrc中,相当于在登录时自动动态修改限制;2)在/etc/security/limits.conf中添加记录(需重启生效,并且在/etc/pam.d中的session有使用到limit模块)
linux下进程的最大线程数、进程最大数、进程打开的文件数
linux查看修改线程默认栈空间大小


文档来源:51CTO技术博客https://blog.51cto.com/u_11929818/3159747
页: [1]
查看完整版本: c++线程数量的限制