Prozess vs. Threads?
Hallo,
Ein Prozess besteht ja immer aus mindestens einem Thread, die ja unabhängig voneinander ablaufen. Wie aber kann man dann einen einheitlichen Zustand des Prozesses bestimmen. Der Prozess kann ja rechenbereit, blockiert usw. sein. Also wie kann man über die einzelnen Threads eine eine Klammer für den Status des Prozesses ziehen.
1 Antwort
![](https://images.gutefrage.net/media/user/ArchEnema/1444744974_nmmslarge.jpg?v=1444744974000)
Das dürfte sehr systemspezifisch sein.
Nach meinem Verständnis ist unter Linux schon seit langem ein Prozess automatisch ein "leichtgewichtiger" Prozess (quasi ein Thread) mit paar (zusätzlichen) Verwaltungsinformationen, die ihn zu einem Prozess machen.
Korrekterweise kann man also den Prozesszustand gar nicht ohne die einzelnen Threadzustände angeben. Man könnte sagen: Wenn keiner läuft dann läuft auch der Prozess nicht. Das ist aber eine hässliche Verallgemeinerung. Tatsächlich hat jeder Thread (inkl. des startenden Main-/Haupt-/Prozess-Threads) einen eigenen Zustand.
Anders formuliert: Technisch ist es Unfug, überhaupt einen gemeinsamen Status für einen Multithreaded-Prozess anzugeben. Also eine reine Darstellungsfrage für Überwachungstools. :D
https://www.baeldung.com/linux/process-vs-thread
https://www.thegeekstuff.com/2013/11/linux-process-and-threads/