Warum werden im Prozess-Explorer Tausende von Threads angezeigt?

653
ton.yeung

In der Abbildung unten sehen Sie, dass das Betriebssystem 2925 Threads meldet .

In meinen eigenen Programmen habe ich die Anzahl der Threads pro Kern auf etwa 1: 1 festgelegt, und dies führt zu der schnellsten Gesamtverarbeitung. Dies liegt daran, dass sich die Leistung nach dem Start des Kontextwechsels verschlechtert.

Dies würde nicht wirklich funktionieren, wenn die Anzahl der ausgeführten Threads Tausende beträgt, da die Anzahl der Kontextwechsel die zusätzlichen Threads, die ich benutze, zu einem Tropfen ins Meer machen würde.

Ist das Betriebssystem etwas anderes als das, woran ich denke, wenn ich an Threads denke?

Warum werden im Prozess-Explorer Tausende von Threads angezeigt?

Warum werden im Prozess-Explorer Tausende von Threads angezeigt?

1
Sie sollten Ihren PC manchmal wirklich neu starten. Ave vor 8 Jahren 0
Ich stimme zu, du solltest es tun. ; D ton.yeung vor 8 Jahren 0
Kontextwechsel werden ausgeführt, wenn Sie einen Thread pro Kern erstellen oder nicht. Es gibt immer noch mehrere Prozesse mit Threads, die auf die Arbeit warten. Ich kann nur annehmen, dass der Leistungsabfall, den Sie erwähnen, ist, wenn ein Thread auf einen anderen Kern verschoben wird, etwas, das Sie nicht (leicht) kontrollieren können (und dies auch nicht versuchen sollten, außer für diese seltenen Umstände). Lieven Keersmaekers vor 8 Jahren 0
Ich will nicht zu viel vom Thema abgehen ... Aber i5 mit 1,7 GHz? xD Ab_ vor 8 Jahren 0

2 Antworten auf die Frage

1
Hefewe1zen

Ein einzelner Prozess kann mehrere Threads besitzen. Das Betriebssystem ist für die Planung von Threads und Prozessen verantwortlich.

Was Sie sehen, ist die Summierung aller aktuell im System laufenden Threads. Kontextumschaltung ist auch auf modernen Betriebssystemen mit Multicore-CPUs eine triviale Operation.

1
Cody Jackson

Hefewe1zen hat es recht; Prozesse können viele Threads enthalten. Aber nicht alle arbeiten gleichzeitig

Viele dieser Threads werden möglicherweise angehalten und warten auf ein Ereignis, in dem der CPU-Scheduler sie nicht stört. Darüber hinaus ist der CPU-Scheduler intelligent genug, um den größten Teil der CPU-Zeit für Threads bereitzustellen, die sie tatsächlich benötigen. Sie müssen sich also nicht allzu viele Sorgen darüber machen, dass all diese Threads die Leistung Ihres Computers beeinträchtigen.