首页 > 解决方案 > 为什么 C++ 应用程序默认启动三个线程?

问题描述

有一个空的 Windows 控制台 C++ 应用程序。在我看来,一个进程默认会启动一个线程,但在调试时它会显示三个线程。程序如下:

int main() {
    return 0;
}

调试信息是: 显示三个线程的调试信息

标签: c++

解决方案


ntdll.dll线程实际上是从您链接的库启动的操作系统线程。您的所有代码都在线程 16472 上运行。

通常这些线程池工作者为您的应用程序加载其他动态库。Windows 10 正在通过利用多个 CPU 内核更快地初始化来优化进程启动。


推荐阅读