我有一个程序在我的debian机器上创建指定数量的活动线程。当我尝试创建超过100的任何东西时,我得到一个错误,说“创建线程时出错”,当它达到操作系统限制并且机器不接受任何传入连接时,执行命令时我得到“-bash:fork:无法分配内存” 。查看top命令,我看到任务在32564处达到最大值,并且只使用了20%的RAM。我尝试过编辑ulimit -a& -n到500000和-s到81920但仍然没有做任何事情。任何帮助非常感谢/.
答案 0 :(得分:0)
根据我自己的经验,当使用线程时,一个好的经验法则是提高CPU绑定进程的性能是使用相同数量的线程作为内核,除非是超线程系统,在这种情况下应该使用核心数量的两倍。可以得出的另一个经验法则是I / O绑定过程。此规则是每个核心的线程数量翻两番,除了超线程系统的情况,然后可以使每个核心的线程数量翻两番。因此,无论如何你可能不应该制作100个线程。只要做足够的"。