gpt4 book ai didi

c++ - 为什么 _beginthread 返回错误 ENOMEM

转载 作者:行者123 更新时间:2023-11-30 04:25:04 25 4
gpt4 key购买 nike

我有一台用 C++ 实现的服务器,运行在具有 25GB RAM 的 Windows 2003 企业版上。

在压力测试期间,我看到当它试图通过调用 _beginthread 创建一个新线程时,我得到了 ENOMEM,这意味着“内存不足”。

但是我不明白为什么内存不足,perfmon数据显示当时进程使用了​​1.2GB VM和类似的物理内存,只有250个线程。

谁能帮我分析或解释为什么我仍然会报错?

最佳答案

一个线程通常需要 1 MB 的未碎片化地址空间。如果您的压力测试将内存碎片化到没有 1 MB 可用空间的程度,您将无法创建任何新线程。在最坏的情况下,这可以通过少至 2000 次每次分配一个字节来实现。

关于c++ - 为什么 _beginthread 返回错误 ENOMEM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12360845/

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