Was ist eigentlich los, wenn du einen Thread schläfst ?
Ich sehe, dass das Schlafen eines Threads "den aktuellen Thread für einen bestimmten Zeitraum pausiert" . Aber wie funktioniert das?
Laut Wie funktioniert Thread.sleep () intern und wie funktioniert Thread.sleep wirklich? ::
- Die Schlafdauer unterliegt einer gewissen systemspezifischen Granularität
- Der Schlaf blockiert
- Der Thread verlässt die CPU und stoppt die Ausführung
- Der Thread verbraucht im Ruhezustand keine CPU-Zeit
Ich kann die interne und grundlegende Mechanik dessen, was dies alles bedeutet, einfach nicht ganz verstehen.
Ich verstehe, dass es einen sogenannten Scheduler gibt, der für das Wechseln zwischen Threads verantwortlich ist.
Quellen scheinen darauf hinzuweisen, dass dies je nach Betriebssystem (oder Hardware?) Variiert und die meisten Threads 1 ms - 60 ms oder so erhalten, um einige Aktionen auszuführen, bevor die CPU zu einem anderen Thread wechselt.
Aber wenn ein Thread in den Ruhezustand versetzt wird (z. B. viele Sekunden), wie wird er fortgesetzt? Ich vermute, dass ein Timer irgendwie involviert ist. Ist es die Uhr des Motherboards? Bezieht es sich auf die CPU-Taktrate?
Und selbst wenn ein Timer beteiligt ist, woher weiß die CPU, wann es Zeit ist, wieder auf den Thread zu achten? Müsste es nicht ständig im Thread nachsehen, ob es fertig ist? Ist das nicht effektiv Polling und deshalb Art ist raubend CPU - Zeit?
Ist das Schlafen ein Thread sprachspezifisch oder ist das Betriebssystem dafür verantwortlich oder ist es eine CPU-spezifische Sache?
Würde mir das bitte jemand mit grundlegenden Erklärungen zu Dingen wie dem Scheduler und dem, was die CPU während all dem tut, erklären?