Wenn wir einen Thread starten, setzt das Betriebssystem diesen Thread in die Warteschlange, und der Scheduler des Betriebssystems führt diesen Thread aus, wenn die Zeit (Quantum) kommt, also wie das Betriebssystem versteht, ob der Thread seine Operation beendet hat?Wie funktioniert das Betriebssystem, wenn ein Thread beendet wurde?
0
A
Antwort
1
Der Thread ruft eine betriebssystemspezifische Funktion auf. Diese Funktion teilt dem Betriebssystem mit, dass es abgeschlossen ist. In den meisten Sprachen/Frameworks wird dies hinter den Kulissen für Sie erledigt.
1
Es gibt im Allgemeinen zwei Mechanismen zum Beenden von Kernel-Threads. Sie sind die gleichen wie für die Beendigung von Prozessen.
- Ein expliziter Aufruf an einen Systemdienst, um den Thread zu beenden; oder
- Ein impliziter Aufruf an einen Systemdienst zum Beenden, der aufgerufen wird, wenn die Hauptfunktion des Threads beendet wird.
Verwandte Themen
- 1. Der Alarm wird beendet, wenn das Betriebssystem die App beendet
- 2. Beenden Sie Child-Threads, wenn das übergeordnete Thread beendet wird
- 3. PYTHON Wie erkenne ich, wenn ein Prozess beendet wurde?
- 4. Wie säubere ich einen Thread, nachdem seine Ausführungsmethode beendet wurde?
- 5. Wie lösche ich das Boost-Thread-Objekt, wenn der Thread selbst beendet wird?
- 6. Zählen, wie oft ein Thread vorweggenommen wurde?
- 7. Herausfinden, wann ein MotionEvent beendet wurde
- 8. Wie ein Basis-Betriebssystem
- 9. Wie sollte ein Thread seinem Elternteil mitteilen, dass es unerwartet beendet wurde?
- 10. Wie man einen Std :: Thread beendet?
- 11. Wie wurde mein Prozess beendet?
- 12. Wie funktioniert ein Ajax-Rückruf, nachdem ein verzögerter Job in Ruby on Rails beendet wurde?
- 13. Python: Wie man einen Thread beendet, wenn Hauptprogramm endet
- 14. Standort wird aktualisiert, auch wenn die App beendet wurde/beendet wurde
- 15. Siehe Thread nicht korrekt beendet
- 16. Verwalten Sie eine .NET-App so, dass sie ordnungsgemäß beendet wird, wenn sie beendet/beendet wurde
- 17. Trigger und auch wenn ein nicedit Toolbutton beendet wurde oder geklickt wurde
- 18. Wie kann ich feststellen, ob ein Prozess beendet wurde?
- 19. Wie wird ein QUARTZ JOB eingestellt, um nur zu starten, wenn ein anderer JOB beendet wurde?
- 20. Programmausführung durch das Betriebssystem
- 21. Welche Exception wird ausgegeben, wenn der Thread unerwartet beendet wird?
- 22. Wie kann man wissen, wann ein Prozess beendet wurde?
- 23. Thread beendet Event in Python
- 24. Funktioniert Pthread_cancel, wenn der Thread blockiert Code wie Verbindung akzeptieren?
- 25. XAMPP beendet Arbeiter-Thread 0
- 26. Wie update ich Arangodb, wenn ich das Betriebssystem ändere
- 27. Wie man Oracle Datenbanken sichert, wenn das Betriebssystem heruntergefahren ist
- 28. jqgrid-Ereignis, wenn das Nachladen beendet ist?
- 29. Warum sperrt Go's LockOSThread diesen Betriebssystem-Thread nicht?
- 30. sagen, wenn ein execl() Prozess beendet
Aber wie? Wir übergeben die Methodenreferenz nur beim Starten des Threads, fügt Os Code am Ende des Thread-Funktionscodes ein? – spartacus
Sie übergeben eine Methode an das Betriebssystem. Das Betriebssystem ruft es auf. Wenn es zurückkehrt, ruft die OS/Framework-Funktion, die es aufgerufen hat, die Funktion os thread finished auf –