Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen synchron und asynchron in Java?

Was ist der Unterschied zwischen synchron und asynchron in Java?

青灯夜游
青灯夜游Original
2019-12-26 16:57:086350Durchsuche

Was ist der Unterschied zwischen synchron und asynchron in Java?

Konzept:

1. Synchronisierung: Alle Vorgänge werden abgeschlossen, bevor sie an den Benutzer zurückgegeben werden. Auf diese Weise wartet der Benutzer zu lange online, was dem Benutzer das Gefühl gibt, festzustecken (d. h. wenn das System migriert wird und Sie auf „Migrieren“ klicken, wird die Schnittstelle nicht verschoben, das Programm wird jedoch weiterhin ausgeführt, was dem Benutzer Folgendes gibt). ein festgefahrenes Gefühl). In diesem Fall kann der Benutzer die Schnittstelle nicht schließen. Wenn sie geschlossen ist, wird der Migrationsprozess unterbrochen.

2. Asynchron: Stellen Sie die Benutzeranfrage in die Nachrichtenwarteschlange und geben Sie sie an den Benutzer zurück. Das Systemmigrationsprogramm wurde gestartet und Sie können den Browser schließen. Anschließend schreibt das Programm langsam in die Datenbank. Dies ist asynchron. Der Benutzer fühlt sich jedoch nicht festgefahren und wird Ihnen mitteilen, dass das System auf Ihre Anfrage reagiert hat. Sie können die Schnittstelle schließen.

[Empfohlenes Lernen: Java-Video-Tutorial]

Synchronisierung bedeutet, dass alle Vorgänge abgeschlossen sind, bevor die Ergebnisse an den Benutzer zurückgegeben werden, d. h. nach dem Schreiben der Datenbank. Im entsprechenden Benutzer ist die Benutzererfahrung nicht gut.

Asynchron muss nicht gewartet werden, bis alle Vorgänge abgeschlossen sind, bevor auf Benutzeranfragen reagiert wird. Dies bedeutet, dass zuerst auf Benutzeranfragen reagiert und dann langsam in die Datenbank geschrieben wird, was eine bessere Benutzererfahrung bietet.

Beispiele für synchrone und asynchrone Vorgänge:

1. Synchronisation:

Zum Beispiel werden Banküberweisungssysteme, Datenbankspeichervorgänge usw. verwendet Synchronisation Interaktive Operationen.

2. Asynchron:

Um eine große Anzahl von Datenbankoperationen in kurzer Zeit zu vermeiden, wird ein Caching-Mechanismus, also eine Nachrichtenwarteschlange, verwendet. Stellen Sie die Daten zuerst in die Nachrichtenwarteschlange und schreiben Sie sie dann langsam in die Datenbank.

Die Einführung des Nachrichtenwarteschlangenmechanismus kann zwar eine schnelle Reaktion auf Benutzeranfragen gewährleisten, verkürzt jedoch nicht die Zeit für die Datenmigration (das heißt, das Schreiben von 800.000 Daten in MySQL dauert 1 Stunde). Nach der Verwendung von Redis Es dauert immer noch 1 Stunde, nur um eine schnelle Antwort auf die Anfrage des Benutzers sicherzustellen. Nachdem der Benutzer die HTTP-URL-Anfrage abgeschlossen hat, kann er den Browser schließen und andere Dinge tun. (Wenn Redis nicht verwendet wird, kann der Browser nicht geschlossen werden.)

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen synchron und asynchron in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn