非同期実行と同期実行の違いは何ですか? [closed] 質問する

非同期実行と同期実行の違いは何ですか? [closed] 質問する

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

ベストアンサー1

何かを同期的に実行する場合、それが完了するまで待ってから別のタスクに進みます。何かを非同期的に実行する場合、それが完了する前に別のタスクに進むことができます。

オペレーティング システムでは、これは「スレッド」上でプロセスまたはタスクを実行することに相当します。スレッドとは、作業単位として存在する一連のコマンド (コード ブロック) です。オペレーティング システムは、プロセッサ コア上で特定のスレッドを実行します。ただし、プロセッサ コアは一度に 1 つのスレッドしか実行できません。複数のスレッドを同時に実行するという概念はありません。オペレーティング システムは、各スレッドを短い時間 (1 ミリ秒など) 実行し、スレッド間を継続的に切り替えることで、複数のスレッドが同時に実行されているように見せることができます。

ここで、複数のプロセッサ コアを導入すると、スレッドを同時に実行できるようになります。オペレーティング システムは、最初のプロセッサ コアの 1 つのスレッドに時間を割り当て、次に同じ時間ブロックを別のプロセッサ コアの別のスレッドに割り当てることができます。これはすべて、オペレーティング システムがタスクの完了を管理し、その間にコードを続行して他の作業を実行できるようにするためです。

非同期プログラミングは、同時に実行できる場合に、どのように物事を結び付けるかというセマンティクスのため、複雑なトピックです。このテーマについては多数の記事や書籍がありますので、ご覧ください。

おすすめ記事