Wie kann ich die Anzahl der Threads in einem Prozess von / proc / [pid] / stat in Linux ausführen lassen?

8325
Irlanco

Ich habe den Pid des Prozesses. Ich würde gerne die aktuelle Anzahl der laufenden Threads erfahren. Ich weiß, dass ich / proc / pid / stat für diese Informationen lesen kann, aber ich bin nicht sicher, wie ich die Anzahl der Threads speziell von stat erhalten kann. Kann jemand helfen?

Vielen Dank!

6
http://stackoverflow.com/questions/268680/how-can-i-monitor-the-active-thread-count-of-a-process-jvm-on-linux Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 8 Jahren 0

1 Antwort auf die Frage

5
David Schwartz

Die Anzahl der Einträge in /proc/pid/taskist die Anzahl der Threads im Prozess. Hat /proc/pid/statusauch eine ThreadsZeile. In /proc/pid/statist es das 20. Feld.

Ach, das würde ich oft versuchen, aber mir wurde gerade klar, dass meine Methode, die Prozess-ID zu bekommen, falsch ist. Ich führe Benutzerraumcode aus, der liest und in eine proc-Datei schreibt. Ich verwende ein Modul zum Lesen und schreibt in eine proc-Datei. Kann ich im Modulcode die Prozess-ID des Prozesses erhalten, der versucht, in eine proc-Datei zu schreiben? Danke für jede Hilfe! Irlanco vor 11 Jahren 0
Wenn Sie Ihre eigenen Informationen abrufen möchten, verwenden Sie einfach `/ proc / self`. Dies ist eine Abkürzung, um Ihre eigene PID zu erhalten und einen Pfad zu erstellen, der sie enthält. Natürlich können Sie auch "getpid" anrufen, um Ihre eigene PID zu erhalten. David Schwartz vor 11 Jahren 0
Ich glaube an getpid () aus einer User-Space-Bibliothek und funktioniert nicht im Kernel-Space. Ist das wahr? Oder gibt es eine Kernelversion? Ansonsten versuche ich das / proc / self danke! Irlanco vor 11 Jahren 0
Wenn Sie dies vom Kernel-Code aus tun möchten, schauen Sie sich an, wie `proc` es tut, und kopieren Sie das. Sie benötigen ein "task_struct" und müssen dessen "signal-> count" -Member atomar lesen. Um auf die aktuelle Aufgabe zuzugreifen, verwenden Sie "current". David Schwartz vor 11 Jahren 0