Threads
Auch: Anzahl Threads
Kurze Antwort
Ein Thread ist ein eigener Ausführungsstrang innerhalb eines Prozesses, und ein Prozess kann mehrere Threads gleichzeitig auf verschiedenen CPU-Kernen ausführen. Die Spalte „Threads“ in der Aktivitätsanzeige zeigt, wie viele Threads jeder Prozess gerade hat.
Die meisten Apps nutzen viele Threads: einen, um die Oberfläche zu zeichnen und Klicks zu verarbeiten, und weitere für Netzwerkanfragen, Dateizugriffe und Arbeit im Hintergrund. Bei einer großen App sind Dutzende Threads normal.
Die Zahl der Threads sagt wenig darüber, wie beschäftigt eine App ist. Die meisten Threads warten die meiste Zeit. „% CPU“ misst die tatsächliche Arbeit besser.
Auf dieser Seite
Wo du die Zahl der Threads siehst
Klicke in der Aktivitätsanzeige auf den Tab „CPU“. Die Spalte „Threads“ zeigt die Zahl pro Prozess, und unten im Fenster steht die Gesamtzahl der Threads und Prozesse auf dem Mac.
Im Terminal listet ps -M -p <PID> die Threads eines einzelnen Prozesses auf.
Wann eine wachsende Zahl von Threads wichtig ist
Eine Thread-Zahl, die über Stunden immer weiter steigt, ohne sich einzupendeln, kann auf einen Fehler hindeuten: Die App startet Threads und beendet sie nie. Wächst dieselbe App auch im Speicher oder wird langsamer, ist ein Neustart der App ein sinnvoller erster Schritt, und eine Meldung an die Entwickler:innen hilft.
Warum manche Apps Hunderte Threads haben
macOS stellt Apps über Grand Central Dispatch einen gemeinsamen Pool an Worker-Threads bereit. Gibt eine App viele kleine Aufgaben ab, etwa Bilder dekodieren oder Dateien lesen, kann der Pool dafür wachsen und später wieder schrumpfen. Allein das kann einer beschäftigten App Dutzende Threads hinzufügen.
Browser, Chat-Apps und Code-Editoren starten oft mehrere Prozesse, jeder mit eigenen Threads für Zeichnen, Netzwerk, Audio und Skripte. Audio- und Video-Apps halten Threads bereit, damit die Wiedergabe nie warten muss. Zählt man das zusammen, sind ein paar Hundert Threads in einer großen App nicht ungewöhnlich.
kernel_task zeigt oft die höchste Zahl von allen. Er enthält die Threads, die der macOS-Kernel und seine Treiber nutzen, und das ist kein Zeichen für ein Problem.
So prüfst du die Thread-Zahl einer App
- Wähle in der Aktivitätsanzeige den Prozess aus und doppelklicke darauf, oder klicke in der Symbolleiste auf die Taste „Informationen“.
- Das Informationsfenster zeigt für diesen Prozess „Threads“ zusammen mit „Ports“ und „Prozesswechsel“.
- Führe im Terminal
top -l 1 -pid <PID> -stats pid,command,thaus und ersetze <PID> durch die Prozess-ID aus der Spalte „PID“. Der Wert #TH zeigt die Gesamtzahl der Threads und nach dem Schrägstrich die laufenden Threads. - Um alle Prozesse nach Thread-Zahl zu sortieren, führe
top -o th -stats pid,command,thaus. Mit q beendest du die Anzeige.
Normale und bedenkliche Thread-Zahlen
Die Gesamtzahl ist weniger wichtig als die Richtung, in die sie sich über die Zeit bewegt.
- Normal: Die Zahl springt, wenn du Fenster öffnest, einen Download startest oder einen Export beginnst, und sinkt wieder, wenn die Arbeit erledigt ist.
- Normal: eine gleichmäßig hohe Zahl, die über Stunden etwa gleich bleibt.
- Bedenklich: eine Zahl, die den ganzen Tag steigt und nie sinkt, auch wenn die App nichts tut.
- Bedenklich: eine steigende Thread-Zahl zusammen mit wachsendem Speicher oder einer wachsenden Zahl bei „Ports“. Diese Kombination deutet meist auf ein Leck in der App hin.
- Bedenklich: viele laufende Threads, angezeigt nach dem Schrägstrich in
top, in einer App, die du nicht benutzt. Sie erledigt Arbeit, um die du nicht gebeten hast.
Threads und CPU-Kerne
Mehr Threads als Kerne zu haben, ist normal. macOS wechselt die Kerne viele Male pro Sekunde zwischen Threads, und die meisten Threads warten ohnehin. Nur laufende Threads konkurrieren um einen Kern.
Die Zahl der Threads, die im selben Moment laufen können, entspricht der Zahl deiner logischen Kerne aus sysctl -n hw.logicalcpu. Sind mehr Threads bereit, warten die übrigen, und genau dieses Warten erhöht die Load Average.
Häufige Fragen
Was bedeutet „Threads“ in der Aktivitätsanzeige?
Es ist die Zahl der Threads, die ein Prozess ausführt. Mit Threads kann eine App mehrere Dinge gleichzeitig tun, zum Beispiel ihr Fenster zeichnen, während sie eine Datei lädt.
Sind viele Threads schlecht?
Meist nicht. Große Apps haben oft Dutzende oder Hunderte Threads, und die meisten ruhen. Achten solltest du auf eine Zahl, die ohne Ende wächst.
Was haben Threads mit % CPU über 100 zu tun?
Ein Prozess kann nur dann mehr als einen Kern nutzen, wenn mehr als ein Thread gleichzeitig arbeitet. So kommt „% CPU“ über 100 %.
Wie viele Threads kann ein Mac gleichzeitig ausführen?
Einen pro logischem Kern im selben Augenblick. Mit sysctl -n hw.logicalcpu siehst du die Zahl. Tausende weitere können existieren, sie wechseln sich aber ab.
Gibt das Beenden einer App ihre Threads frei?
Ja. Wenn ein Prozess endet, enden alle seine Threads mit ihm. Ein Neustart der App ist der schnellste Weg, eine zu groß gewordene Thread-Zahl zurückzusetzen.
Warum hat kernel_task so viele Threads?
kernel_task ist der macOS-Kernel, und zu seinen Threads gehören die des Kernels und seiner Treiber. Eine hohe Zahl ist dort normal.
Verwandte Begriffe
Suchst du etwas Besseres als die Aktivitätsanzeige? Sieh dir die besten Alternativen zur Aktivitätsanzeige für den Mac an, oder stöbere durch alle Begriffe im Glossar.