Ich habe eine Anwendung mit 8 unabhängigen Threads, generiert durch eine Wrapper-Klasse um Pthread. Alle Threads laufen in einer unendlichen While-Schleife mit einer Zykluszeit von jeweils 1 Sekunde. Vom Hauptthread (Hauptfunktion, der auch in unendlicher while-Schleife läuft), möchte ich den Threadstatus überwachen, ob der Thread aus irgendeinem Grund blockiert wurde oder nicht. Gibt es eine Möglichkeit, über Systemaufrufe den Thread-Status zu überwachen?C++: Pthread Statusüberwachung unter Linux
1
A
Antwort
0
GDB ist die beste Option,
GDB auf den laufenden Prozess anhängen das unter Befehl
gdb -p "pid"
info threads
wird dies in der Anwendung und den Status von jedem Thread
+0
Ich möchte es im Programm selbst tun, gdb ist keine Option ... Haben einige Entscheidungen zu tun, basierend auf Thread-Status – user1678399
0
Sie alle Fäden anzeigen kann auf Prozessstatusinformationen im proc-Dateisystem zugreifen. Unter Verwendung der PIDs der Fäden, können Sie ihren Status in /proc/[PID]/status
die Inhalte der Statusdatei nachschlagen wie folgt aussieht:
[email protected]:/proc/1151$ cat status
Name: systemd-logind
State: S (sleeping)
Tgid: 1151
Ngid: 0
Pid: 1151
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
...
Verwandte Themen
- 1. Standard-Prioritätsvererbungsrichtlinie von Pthread-Mutexen unter Linux?
- 2. Wie man ein PThread in c unter Linux
- 3. Array-Partition mit Pthread in Linux C
- 4. C++ Flash unter Linux
- 5. Multi-Threads Programmarchitektur C Pthread
- 6. UDP in C++ unter Linux
- 7. C# -Server-Skalierbarkeitsproblem unter Linux
- 8. Beep unter Linux in C
- 9. Entwickeln von C# unter Linux
- 10. Standardgateway in C unter Linux
- 11. Uptime unter Linux in C
- 12. Wird C# unter Linux laufen
- 13. C - pthread Argumente
- 14. Einfacher Pthread! C++
- 15. Pthread wird in C
- 16. Ausnahmebehandlung in C ohne C++ unter Linux
- 17. Chatroom in C/Socket-Programmierung unter Linux
- 18. Verwendung von Pthread in C++
- 19. C Pthread, Zeiger verliert Inhalt
- 20. Wie kompiliere ich C++ unter Ubuntu Linux?
- 21. howto untersuchen C++ .o Datei unter Linux?
- 22. Ziel C unter Windows oder Linux
- 23. execl Befehl in c unter Linux Ubuntu
- 24. C++ Math Funktionen Problem (unter Linux)
- 25. Lokalisieren von Schriftarten unter Linux (in C++)
- 26. unter Linux, c Funktion verrückt Verhalten
- 27. CPLEX in Eclipse C++ unter Linux einrichten
- 28. Multi-Threaded Queue unter Linux C
- 29. Kompilieren unter Linux mit C++ Standardbibliotheken
- 30. SSH-Verbindung in C++ unter Linux
Sie ps von Haupt-Thread nennen könnte und betrachten Status der einzelnen Fäden, zum Beispiel, wenn der Thread im S + oder D-Zustand sitzt. Oder schau dir ps src code an und tue es direkt, ohne ps aufzurufen und seine Ausgabe zu parsen. –