首頁 > 後端開發 > C++ > 為什麼在 Windows 10 C 應用程式中建立多執行緒?

為什麼在 Windows 10 C 應用程式中建立多執行緒?

DDD
發布: 2024-10-27 00:46:30
原創
342 人瀏覽過

Why are Multiple Threads Created in Windows 10 C   Applications?

Windows 10 在C 應用程式中神秘的線程創建

在這次調查中,我們對運行時意外創建額外線程進行了令人費解的觀察Windows 10 中的一個簡單的C 程式。使用Visual Studio 2015,使用以下程式碼建立了一個新的控制台應用程式:

<code class="cpp">int main() {
    return 0;
}</code>
登入後複製

在return 語句處設定斷點並在偵錯器中執行程式時,程式在Windows 7 上僅顯示一個線程。然而,在 Windows 10 上,存在著數量驚人的 5 個執行緒:主執行緒和等待同步物件的四個附加「工作執行緒」。

揭曉線程起源

提出的問題是:「誰在啟動這些額外的線程?」為了進行調查,建議訪問「調試> Windows > 線程」視窗並啟用Microsoft 符號伺服器以提高可見性。這表示附加執行緒被識別為“ntdll.dll!TppWorkerThread”。

DLL 載入的作用

在 TppWorkerThread() 入口點設定斷點產生了有價值的堆疊追蹤,可以深入了解這些執行緒的起源。我們發現 Windows 10 載入程式正在利用執行緒池來載入 DLL。 Windows 7 中沒有此行為,這表示 Windows 10 的初始化過程發生了重大變化。

並發初始化以加快啟動速度

透過利用多核心,Windows 10 有效加速透過同時執行主執行緒和 DLL 載入任務來完成應用程式的初始化。此行為增強了整體初始化效能,並展示了 Windows 10 進階資源管理功能的優勢。

以上是為什麼在 Windows 10 C 應用程式中建立多執行緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板