Windows 10 C 程序中出现多线程:揭开源头
在 Visual Studio 2015 中,一个简单的 C 程序最初包含一个线程。然而,当在 Windows 10 上执行时,它令人惊讶地显示出四个额外的线程。问题出现了:谁初始化了这个线程池?
识别线程池起源
通过使用 Debug >
窗口>启用 Microsoft Symbol Server 的线程窗口,线程入口点在 ntdll.dll 中显示为 TppWorkerThread。由此得出的结论是,Windows 10 正在利用线程池来优化 DLL 加载。
堆栈跟踪揭示进程
在 TppWorkerThread 上设置的及时断点捕获了堆栈跟踪,表明加载程序使用线程池来加载 DLL。值得注意的是,主线程在加载程序中也处于活动状态,这证明了系统并发分配任务的能力。
是功能,不是错误
Windows 10 中的此行为表明系统正在利用可用核心来加速进程初始化过程。因此,额外线程的出现并不是一个问题,而是一种有益的增强,可以更有效地利用系统的计算资源。以上是为什么 Windows 10 中的简单 C 程序会产生多个线程?的详细内容。更多信息请关注PHP中文网其他相关文章!