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中文網其他相關文章!