Heim  >  Artikel  >  Backend-Entwicklung  >  Warum werden in Windows 10 C-Anwendungen mehrere Threads erstellt?

Warum werden in Windows 10 C-Anwendungen mehrere Threads erstellt?

DDD
DDDOriginal
2024-10-27 00:46:30327Durchsuche

Why are Multiple Threads Created in Windows 10 C   Applications?

Die mysteriöse Thread-Erstellung von Windows 10 in C-Anwendungen

Bei dieser Untersuchung wurde eine verblüffende Beobachtung bezüglich der unerwarteten Erstellung zusätzlicher Threads beim Ausführen gemacht ein einfaches C-Programm in Windows 10. Mit Visual Studio 2015 wurde eine neue Konsolenanwendung mit dem folgenden Code erstellt:

<code class="cpp">int main() {
    return 0;
}</code>

Nachdem ein Haltepunkt an der Return-Anweisung gesetzt und das Programm im Debugger ausgeführt wurde, wurde die Das Programm wies unter Windows 7 nur einen Thread auf. Unter Windows 10 waren jedoch überraschend viele fünf Threads vorhanden: der Hauptthread und vier zusätzliche „Worker-Threads“, die auf ein Synchronisierungsobjekt warteten.

Enthüllung der Thread-Ursprung

Die gestellte Frage war: „Wer startet diese zusätzlichen Threads?“ Um dies zu untersuchen, wurde empfohlen, auf das Fenster „Debug > Windows > Threads“ zuzugreifen und den Microsoft Symbol Server für eine bessere Sichtbarkeit zu aktivieren. Dies ergab, dass die zusätzlichen Threads als „ntdll.dll!TppWorkerThread“ identifiziert wurden.

Die Rolle des DLL-Ladens

Das Setzen eines Haltepunkts am TppWorkerThread()-Einstiegspunkt ergab ein wertvoller Stacktrace, der Einblicke in den Ursprung dieser Threads lieferte. Es wurde festgestellt, dass der Windows 10-Loader den Thread-Pool zum Laden von DLLs nutzte. Dieses Verhalten fehlte in Windows 7, was auf eine wesentliche Änderung im Initialisierungsprozess von Windows 10 hinweist.

Gleichzeitige Initialisierung für schnelleren Start

Durch die Nutzung mehrerer Kerne wird Windows 10 effektiv schneller Verbessern Sie die Initialisierung der Anwendung, indem Sie sowohl den Hauptthread als auch die DLL-Ladeaufgaben gleichzeitig ausführen. Dieses Verhalten verbessert die allgemeine Initialisierungsleistung und zeigt die Vorteile der erweiterten Ressourcenverwaltungsfunktionen von Windows 10.

Das obige ist der detaillierte Inhalt vonWarum werden in Windows 10 C-Anwendungen mehrere Threads erstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn