gpt4 book ai didi

c++ - pthread_create ENOMEM 大约 32000 个线程

转载 作者:行者123 更新时间:2023-11-30 03:10:18 32 4
gpt4 key购买 nike

进程运行卡在 32000 (± 5%) 左右

~# cat/proc/sys/kernel/threads-max127862

~# ulimit -s堆栈大小(千字节,-s)2048

可用内存:3,5 Go

此外,当我在进程像“top”一样卡住时尝试基本命令时,我收到 bash 消息:无法 fork ,内存不足。即使还有 3,5 Go 的可用内存。

什么可以将线程创建限制在 32 000?

最佳答案

线程用线程 ID (TID) 标识,在 Linux 中这只是 PID,并且...

~% sysctl kernel.pid_max
kernel.pid_max = 32768

Linux 中的PID 是16 位的,32768 已经是允许的最大值。有了那么多线程,您就完全填满了操作系统进程表。我认为您将无法创建比这更多的线程。

无论如何,如果您需要那么多线程,那么您的设计确实有问题。确实没有理由拥有那么多。

关于c++ - pthread_create ENOMEM 大约 32000 个线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3419283/

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