同時実行、並列処理、非同期メソッドの違いは何ですか? 質問する

同時実行、並列処理、非同期メソッドの違いは何ですか? 質問する

並行性とは、2 つのタスクを別々のスレッドで並行して実行することです。ただし、非同期メソッドは並行して実行されますが、同じ 1 つのスレッドで実行されます。これはどのように実現されるのでしょうか。また、並列処理はどうでしょうか。

これら 3 つの概念の違いは何でしょうか?

ベストアンサー1

同時実行と並列実行は、あなたが正しく推測しているように、実質的に同じ原理です。どちらもタスクが同時に実行されることに関連していますが、並列タスクは実際にはマルチタスクであり、「同時に」実行されるべきであると私は言います。一方、同時実行は、タスクが実行スレッドを共有しながらも、並列で実行されているように見えることを意味する可能性があります。

非同期メソッドは、前の 2 つの概念とは直接関係ありません。非同期は、同時実行または並列タスクの印象を与えるために使用されますが、実際には、非同期メソッド呼び出しは通常、現在のアプリケーションから離れて作業を行う必要があるプロセスに使用され、応答を待ってアプリケーションをブロックすることは望ましくありません。

たとえば、データベースからデータを取得するには時間がかかることがありますが、データを待機して UI をブロックすることは望ましくありません。非同期呼び出しはコールバック参照を受け取り、リモート システムに要求が送信されるとすぐに実行をコードに戻します。リモート システムが必要な処理を実行している間も UI はユーザーに応答し続けることができ、データがコールバック メソッドに返されると、そのメソッドは必要に応じて UI を更新 (または更新をハンドオフ) できます。

ユーザーの観点からは、マルチタスクのように見えますが、そうではない場合があります。


編集

多くの実装では、非同期メソッド呼び出しによってスレッドが起動されますが、これは必須ではなく、実行される操作と、応答をシステムに通知する方法によって決まることを付け加えておく価値があるでしょう。

おすすめ記事