[解決済み】並行処理、並列処理、非同期メソッドの違いは何ですか?
2022-04-16 08:41:27
質問
並行処理とは、2つのタスクが別々のスレッドで並行して実行されることです。しかし、非同期メソッドは同じ1つのスレッド上で並行して実行されます。これはどのように実現するのですか?また、並列性についてはどうでしょうか?
この3つのコンセプトの違いは何でしょうか?
どのように解決するのか?
並列タスクは真のマルチタスクであり、同時に実行されるべきですが、並列タスクは、タスクが実行スレッドを共有しながら並列に実行されているように見えることを意味すると私は言っています。
非同期メソッドは、前の2つの概念とは直接関係ありません。非同期は、同時または並列タスクの印象を与えるために使用されますが、事実上、非同期メソッド呼び出しは、現在のアプリケーションから離れて作業を行う必要があるプロセスに通常使用され、応答を待ってアプリケーションをブロックすることは望んでいないのです。
例えば、データベースからデータを取得するのに時間がかかるかもしれませんが、データを待つためにUIをブロックするようなことはしたくありません。非同期呼び出しは、コールバック参照を取り、リクエストがリモートシステムに置かれるとすぐに、あなたのコードに実行を返します。リモートシステムが必要な処理を行う間、UIはユーザーへの応答を続けることができます。いったんリモートシステムがコールバックメソッドにデータを返すと、そのメソッドは適宜UIを更新(または更新をハンドオフ)できます。
ユーザーから見ると、マルチタスクのように見えますが、そうではないかもしれません。
EDIT
多くの実装では、非同期メソッド呼び出しによってスレッドが起動しますが、それは必須ではなく、実行される操作と、レスポンスをどのようにシステムに通知するかによります。
関連
-
[解決済み] デッドロックとは何ですか?
-
[解決済み] Pythonでループ内の演算をマルチスレッド化する方法
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
-
[解決済み] Java 8 の並列ストリームにおけるカスタムスレッドプール
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み】atomic / volatile / synchronizedの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Not on FX application thread; currentThread = JavaFX Application Thread エラーを回避する方法は?
-
[解決済み] POSIXシステムでのゾンビスレッド
-
[解決済み] "フリースレッド "と "スレッドセーフ "の違いについて
-
[解決済み] デッドロックとは何ですか?
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み】スレッド間で共有されるリソースは何ですか?
-
[解決済み】Node.jsに対するHaskellの対応について教えてください。
-
[解決済み】Redisはシングルスレッドですが、同時I/Oはどのように行うのですか?
-
[解決済み] Re-entrantロックとは何ですか?