はじめに
非同期処理について理解しているつもりでしたが、最近の学習や実装を通じて理解がさらに深まりました。その過程を整理するために記事にしました。
この記事は個人的なアウトプットを目的として作成したものです。そのため、誤った情報や不足している内容が含まれている可能性があります。もし間違いや気になる点がございましたら、ぜひご指摘いただけますと幸いです。
同期処理と非同期処理
同期処理
同期処理とは、複数の処理を順番に実行し、ひとつの処理が完了してから次の処理を始める方式です。このため、前の処理が終わらなければ後の処理は待機します。
例: 電話のやり取り
電話は同期処理の良い例です。自分が電話をかけ、相手が受けることで通信が成立します。しかし、相手が電話を取らなければ通話は成立しません。このように、ひとつの処理(電話を受ける)が完了しない限り、次のステップに進むことができません。
メリット
実行順序が明確で直感的に理解しやすい。
シンプルな処理では実装が簡単。
デメリット
処理待ちが発生するとパフォーマンスが低下する。
ユーザー体験(UX)が悪化する場合がある。
非同期処理
非同期処理では、ある処理が完了するのを待たずに次の処理を実行できます。処理が完了した際にはコールバックやプロミスを使用して結果を受け取ります。
例: メールの送信
メールの送信は非同期処理の良い例です。送信者がメールを送ると、その内容はサーバーに送信され、相手がそのメールを読むかどうかに関わらず、送信者は他の作業を進めることができます。
メリット
同時に複数の処理を進行させることで効率的に動作。
処理待ちが発生しても他のタスクを続行できる。
デメリット
実装が複雑になりがち。
処理順序の把握が難しい場合がある(特にネストが深い場合)。
終わりに
非同期処理について、Reactの学習を進める中でようやく理解が深まってきたと感じています。まだまだ課題も多いですが、引き続き実践を重ねて、さらに応用力を高めていきたいと思います。
参考