首页 > 解决方案 > 启动 C++ 程序后运行多少个后台线程

问题描述

我使用了 unordered_map 并在我的 C++ 程序中启动了 3 个工作线程。但是当我使用 gdb 运行我的代码时,我经常发现以下 GDB 调试信息并且不断出现:

[New Thread 0x2aaac3dc6700 (LWP 4709)]
[Thread 0x2aaac3dc6700 (LWP 4709) exited]
[New Thread 0x2aaac3dc6700 (LWP 4710)]
[Thread 0x2aaac3dc6700 (LWP 4710) exited]
[New Thread 0x2aaac3dc6700 (LWP 4711)]
[Thread 0x2aaac3dc6700 (LWP 4711) exited]
 .....................

怎么会创建和快速销毁这么多线程,是否有后台线程用于对过时对象进行垃圾收集(就像 Java 一样),我怀疑 unordered_map 对象是否导致这么多线程为它清理。

标签: c++multithreading

解决方案


推荐阅读