我的静态链接 Visual C++ 2012 程序偶尔会生成一个 CRTL 错误:“R6016 - 没有足够的空间用于线程数据”。
Microsoft 的最小文档说,当产生新线程时会生成此错误消息,但无法为其分配足够的内存。
但是,我的代码仅在几个定义明确的情况下显式生成了一个新线程,这两种情况都没有发生(尽管 Microsoft 库内部肯定会生成线程)。当程序刚刚存在于后台时,一位用户报告了此问题。
不确定它是否相关,但我没有覆盖默认的 1MB 保留堆栈大小或堆大小,并且我的程序使用的总内存通常很小(在具有 12GB 实际 RAM 的系统上为 3MB-10MB,超过一半这是未分配的)。
这种情况很少发生(所以我无法追踪它),并且报告在不止一台机器上。我只在 Windows 8.1 上听说过这个,但我不会对此进行过多解读。
是否有一些编译器设置可能会影响此错误?还是编程错误?