Schlaf und Warten sind zwei Methoden zum Multithreading in Java. Die Schlafmethode gehört zur Thread -Klasse, während die Warteverfahren aus der Objektklasse stammt. Der Schlüsselunterschied Zwischen Schlaf und Warte in Java ist das, das, das Der Schlaf wird verwendet, um die Ausführung des aktuellen Threads für die angegebene Anzahl von Millisekunden auszusetzen, während die Wartenmethode verwendet wird, damit der aktuelle Thread wartet, bis ein anderer Thread die Benachrichtigung oder Benachrichtigung für das Objekt aufruft.
Ein Faden ist die kleinste Verarbeitungseinheit im Betriebssystem. Es ist ein einzelner sequentieller Kontrollfluss innerhalb eines Programms. Fäden sind leicht. Multithreading ist der Mechanismus, mehrere Threads gleichzeitig auszuführen. Programmiersprachen wie Java unterstützt Multithreading. Multithreading hat Vorteile, da es ermöglicht, mehrere Threads gleichzeitig auszuführen und die Threads unabhängig voneinander sind. Es gibt Methoden in Java, die zum Multithreading verwendet werden können. Zwei von ihnen sind schlafen und warten.
1. Überblick und wichtiger Unterschied
2. Was ist Schlaf in Java?
3. Was ist in Java warten
4. Ähnlichkeiten zwischen Schlaf und Wartezeit in Java
5. Vergleich nebeneinander - Schlaf gegen Java in tabellarischer Form warten
6. Zusammenfassung
In einem Betriebssystem werden mehrere Prozesse ausgeführt. Ein Prozess ist ein Programm in der Ausführung. Jeder Prozess kann mehrere Threads haben und zwischen diesen Threads tritt ein Kontextschalter auf. In Java gibt es zwei Möglichkeiten, einen Thread zu erstellen. Das heißt, die Thread -Klasse oder die Implementierung der Runnable -Schnittstelle implementieren. Die Thread -Klasse verfügt über Konstruktoren und Methoden, um Operationen in einem Thread zu erstellen und durchzuführen. Die Thread -Klasse erweitert die Objektklasse und implementiert eine runnable Schnittstelle. Die Runnable -Schnittstelle sollte von einer Klasse implementiert werden, deren Instanzen von einem Thread ausgeführt werden sollen. Wenn der Thread ausgeführt wird, wird der Code, der ausgeführt wird, in der Auslaufmethode geschrieben. Der Thread, der ausgeführt wird, wird vom Thread Scheduler ausgewählt. Nur ein Thread wird in einem einzigen Prozess ausgeführt.
Ein Faden durchläuft mehrere Phasen. Nach dem Erstellen eines Objekts der Thread -Klasse kann der Programmierer die Startmethode aufrufen. Bevor Sie diese Methode anrufen, soll der Thread im neuen Zustand sein. Der Thread -Scheduler wählt einen zum Ausführen ausgestrahlten Thread aus. Wenn der Thread noch nicht vom Thread -Scheduler ausgewählt ist, aber wenn die Startmethode aufgerufen wird, befindet sich der Thread in einem Laufabschnittzustand. Nachdem der Thread Scheduler den ausführenden Thread auswählt, überträgt er den laufenden Status. Wenn der Thread lebendig ist, aber derzeit nicht zum Laufen berechtigt ist, ist er in nicht abgelegenem oder blockiertem Zustand. Nach Abschluss der Run -Methode geht der Thread in den beendeten Zustand. Das sind die Hauptphasen des Fadenlebenszyklus.
In der Thread -Klasse stehen verschiedene Methoden zur Verfügung, um verschiedene Aufgaben auszuführen. Die Schlafmethode wird verwendet, um die Methode für einen bestimmten Zeitraum zu schlafen. Die Syntax für die Schlafmethode ist der öffentliche Leereschlaf (lange Millisekunden) unterbrochen unterbrochen. Es führt dazu. Wenn ein anderer Thread den aktuellen Thread unterbricht, wird der unterbrochene Status des aktuellen Threads gelöscht, wenn diese Ausnahme ausgelöst wird.
Abbildung 01: Java -Programm mit Schlafmethode
Gemäß dem obigen Programm enthält die Auslaufmethode Code, die ausgeführt werden sollten. Im Hauptprogramm werden zwei Objekte des Beispiels erstellt, und die Startmethoden werden darauf aufgerufen. Dadurch können Sie den Code innerhalb der Run -Methode ausführen. Nur ein Thread wird gleichzeitig ausgeführt. Mit dem Faden. Schlaf (1000); Ermöglicht dem ersten Thread die Ausführung für 1000 Millisekunden. Wenn ein Faden schläft, nimmt der Thread -Scheduler den anderen Thread auf.
Mehrere Threads zugreifen möglicherweise auf eine gemeinsame Ressource. Es kann dazu führen, dass eine falsche Ausgabe erzeugt wird. Die Thread -Synchronisation kann verwendet werden, um nur einen Thread für den Zugriff auf die freigegebene Ressource zu erstellen. Nehmen Sie eine Situation wie folgt an. Wenn es zwei Threads als T1 und T2 gibt, speichern T1 Werte in einer Textdatei mit dem Namen text1.txt. Diese Werte werden für eine andere Berechnung verwendet, wenn T1 zurückgibt. Wenn T2 vor der Rückgabe von T1 beginnt, kann T2 die von T1 gespeicherten Werte ändern. Dies kann dazu führen, dass T1 eine falsche Ausgabe liefert. Mit Hilfe der Synchronisation, wenn T1 mit dem Text1 beginnt.TXT -Datei kann diese Datei gesperrt werden, sodass sie nur durch T1 zugegriffen werden kann. Der T2 kann es erst ändern, wenn T1 die Sperre veröffentlicht, um auf diese Textdatei zuzugreifen. Wenn die Aufgabe abgeschlossen ist, kann der T1 das Schloss veröffentlichen. Das Schloss ist auch als Monitor bekannt.
Threadsynchronisation kann durch Kommunikation zwischen den Threads erreicht werden. Ein kritischer Abschnitt ist ein Codesegment, der auf die gemeinsam genutzten Ressourcen zugreift. In der Kommunikation zwischen den Threads wird ein Thread in seinem kritischen Abschnitt ausgeführt, und ein anderer Thread darf in denselben kritischen Abschnitt eingeben, der ausgeführt werden soll. Es wird mithilfe von Wartezeiten, Benachrichtigungen und Benachrichtigungen implementiert. Sie gehören zur Objektklasse. Mit der Warteverfahren wird der aktuelle Thread verwendet. Die Benachrichtigungsmethode wird verwendet, um einen einzelnen Faden aufzuwecken, der auf das Schloss wartet. Der Notifyall wacht alle Threads auf, die auf dem Schloss warten.
Abbildung 02: Taschenrechnerklasse
Abbildung 03: Hauptmethode
Die Taschenrechnerklasse erweitert den Thread. Der synchronisierte Block befindet sich innerhalb der Run -Methode. Die für die Schleif- und Benachrichtigungsmethode befindet sich im synchronisierten Block. In der Hauptmethode wird eine Instanz eines erstellten Threads und die Startmethode auf dieser Instanz aufgerufen. Die Hauptmethode wartet, bis der Faden eine Benachrichtigung enthält. Bei der Ausführung des Programms wartet die Hauptmethode bis zur gesamten Ausführung der Ausführungsmethode und wartet auf die Benachrichtigungsmethode. Sobald die Benachrichtigungsmethode aufgerufen wurde, ist die Hauptmethode nicht mehr zu warten und beginnt den Rest des Codes auszuführen. Main wartet, bis der Taschenrechnerfaden abgeschlossen ist. Schließlich wird das Ergebnis der Summe gedruckt.
Wenn es keinen synchronisierten Block gibt und wenn die Hauptmethode einen Code wie unten hat, gibt er die Ausgabe als Null an, da sie nicht darauf wartet, dass der andere Thread abgeschlossen ist.
Taschenrechner t1 = neuer Rechner ();
t1. Start ();
System.aus.println (t1.Summe);
Schlaf gegen Java warten | |
Die Schlafmethode veranlasst den aktuellen Thread, die Ausführung für die angegebene Anzahl von Millisekunden auszusetzen, vorbehaltlich der Präzision und Genauigkeit von Systemtimern und Schedulern. | Die Warteverfahrensmethode lässt den aktuellen Thread warten, bis ein anderer Thread die Benachrichtigung oder Benachrichtigung für das Objekt aufruft. |
Assoziation mit Lock | |
Die Schlafmethode löst das Schloss auf einem Objekt während der Synchronisation nicht frei. | Die Wait -Methode gibt das Schloss während der Synchronisation frei. |
Ausführungsmethode | |
Die Schlafmethode wird auf dem aktuellen Thread ausgeführt. | Die Wait -Methode wird auf das Objekt aufgerufen. |
Assoziierte Klasse | |
Der Schlaf ist eine Methode der Thread -Klasse. | Das Warten ist eine Methode der Objektklasse. |
Fertigstellung | |
Der Schlafprozess wird abgeschlossen, nachdem die angegebene Zeitüberschreitung vorbei ist. | Die Wait -Methode wird unterbrochen, indem Sie die Benachrichtigungs- oder Benachrichtigungsmethoden aufrufen. |
Auf dem Betriebssystem werden mehrere Prozesse ausgeführt. Jeder Prozess kann mehrere Threads haben. Ein Faden ist die kleinste Verarbeitungseinheit in einem Betriebssystem. Java -Programmierungssprache unterstützt Multithreading. Es ermöglicht das gleichzeitige Ausführen mehrerer Threads. Der Schlaf und Warten sind zwei Methoden, die bei der Implementierung von Multi-Threading verwendet werden können. Der Unterschied zwischen Schlaf und Wartezeit in Java besteht darin, dass der Schlaf verwendet wird, um die Ausführung des aktuellen Threads für die angegebene Anzahl von Millisekunden auszusetzen, während die Wartenmethode verwendet wird, um den aktuellen Thread zu warten, bis ein anderer Thread die Benachrichtigung oder Notifyall aufruft Methode für das Objekt.
1.„Kommunikation zwischen Thread in Java - Javatpoint.”. Javatpoint. Hier verfügbar
2. Inter -Thread Kommunikation in Java Multithreading | Kern -Java -Tutorial | Studytonight. Hier verfügbar