ホームページ  >  記事  >  Java  >  Javaの同期と非同期の違いは何ですか?

Javaの同期と非同期の違いは何ですか?

青灯夜游
青灯夜游オリジナル
2019-12-26 16:57:086350ブラウズ

Javaの同期と非同期の違いは何ですか?

コンセプト:

1. 同期: すべての操作はユーザーに返される前に完了します。このように、ユーザーはオンラインで長時間待機しすぎて、行き詰まったような感覚をユーザーに与えます (つまり、システムの移行中に [移行] をクリックしてもインターフェイスは移動しませんが、プログラムはまだ実行されており、ユーザーに行き詰まりを感じさせます)閉塞感)。この場合、ユーザーはインターフェースを閉じることができず、インターフェースを閉じると移行プロセスが中断されます。

2. 非同期: ユーザーのリクエストをメッセージ キューに入れてユーザーにフィードバックします。システム移行プログラムが開始されているので、ブラウザを閉じても問題ありません。その後、プログラムはゆっくりとデータベースに書き込みます。これは非同期です。しかし、ユーザーは行き詰まりを感じず、システムがリクエストに応答したことを伝えます。インターフェースを閉じることができます。

[推奨学習: Java ビデオ チュートリアル ]

同期とは、結果がユーザーに返される前、つまりデータベースへの書き込み後、すべての操作が完了することを意味します。 、対応するユーザー、ユーザーエクスペリエンスは良くありません。

非同期では、ユーザー リクエストに応答する前にすべての操作が完了するのを待つ必要はありません。つまり、最初にユーザー リクエストに応答し、次にゆっくりとデータベースに書き込むため、ユーザー エクスペリエンスが向上します。

同期操作と非同期操作の例:

1. 同期:

たとえば、銀行振込システム、データベース保存操作などはすべて、同期、対話型操作。

2. 非同期:

短期間に大量のデータベース操作が行われることを避けるために、キャッシュ メカニズム、つまりメッセージ キューが使用されます。まずデータをメッセージ キューに入れてから、ゆっくりとデータベースに書き込みます。

メッセージ キュー メカニズムを導入すると、ユーザーのリクエストに迅速に応答できますが、データの移行時間は短縮されません (つまり、800,000 個のデータを mysql に書き込むのに 1 時間かかります)。 redis を使用しても、ユーザーのリクエストに迅速に応答できるようにするためだけに、それでも 1 時間かかります。ユーザーは http URL リクエストを入力した後、ブラウザを閉じて他のことを行うことができます。redis が使用されていない場合、ブラウザを閉じることはできません)。

以上がJavaの同期と非同期の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。