ホームページ  >  記事  >  Java  >  Javaの同期と非同期の違い

Javaの同期と非同期の違い

(*-*)浩
(*-*)浩オリジナル
2019-12-03 14:24:173796ブラウズ

Javaの同期と非同期の違い

同期: すべての操作が完了した後でのみユーザーに戻ります。このようにして、ユーザーはオンラインで長時間待機しすぎて、行き詰まりを感じます (つまり、システムの移行中に、[移行] をクリックしてもインターフェイスは移動しませんが、プログラムはまだ実行されているため、ユーザーに行き詰まりを感じさせます)閉塞感)。

この場合、ユーザーはインターフェイスを閉じることができません。閉じた場合、移行プロセスは中断されます。 (推奨学習: Java コース)

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

プログラムはデータを処理し、B スレッドは A スレッドによって処理された計算を変更します。

明らかに、これはグローバル リソースが原因です。この問題を解決するには、ローカル変数の使用を優先し、同期されたコード ブロックの使用を二番目に優先することがあります。そのようなセキュリティを考慮すると、システムの処理を犠牲にする必要があります。パフォーマンス、スレッド同期メカニズムは、マルチスレッドが同時実行されるときにリソースの競合が最も激しくなる場所に実装されます。

同期: スレッド A はリソースを要求しようとしていますが、このリソースはスレッド B によって使用されています。同期メカニズムが存在するため、スレッド A はそれに到達できません。どうすればよいですか? スレッド A は待つことしかできません。

非同期: スレッド A はリソースを要求しようとしていますが、このリソースはスレッド B によって使用されています。同期メカニズムがないため、スレッド A は引き続きリソースを要求でき、スレッド A は待つ必要がありません。

3. 概要 :

(1) 同期は安全ですが、同期メカニズムの存在により、パフォーマンスが比較的低下します

(2) ) 非同期は安全ではなく、デッドロックにつながりやすく、そのようなスレッドが終了するとプロセス全体がクラッシュする可能性がありますが、同期メカニズムがないため、マルチスレッドは非同期で実行され、パフォーマンスが向上します。

4. 同期メカニズムは、次の要件が同時に満たされる場合にのみ必要です:

(1) マルチスレッド

( 2) 共有データをめぐる競争がある

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

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