非同期処理
カフェで呼び出しベルを受け取って席で別のことをしながら待ち、ベルが鳴ったらコーヒーを受け取りに行く注文方法のようなものです。
定義 ある処理が終わるのをじっと待つのではなく、その間に別の作業を進め、準備ができた合図が届いたら結果を受け取る仕組みのことです。コンピューターが無駄な待ち時間を作らず、複数の作業をスムーズにこなせるようにしてくれます。
呼び出しベルが変えたカフェの風景
カフェでコーヒーを注文したあと、エスプレッソが抽出されるまでカウンターの前でじっと待たなければならないとしたらどうでしょう。後ろに並んでいるお客さんは、前の人のコーヒーができるまで注文すらできず、ひたすら待たされることになります。このようなやり方を、コンピューターの世界では「同期(Synchronous)処理」と呼びます。1つの処理が完全に終わってからでないと、次の処理に進めない仕組みです。
一方、一般的なカフェでは注文を受けるとすぐに呼び出しベルを渡して席へ案内します。お客さんは席に座ってスマートフォンを見たり、友達とおしゃべりしたりできますよね。店員さんも前の人のコーヒーを淹れている間に、次の人の注文をどんどん受けることができます。
コーヒーが出来上がってベルが鳴ったら、カウンターへ行って商品を受け取ります。このように、時間のかかる作業の完了を待たずに次の作業を先に進める仕組みこそが「非同期(Asynchronous)処理」なのです。
画面が固まらずサクサク動く理由
スマートフォンでSNSを見ているときのことを思い出してみてください。画面を下にスクロールすると、新しい写真や投稿が次々と表示されますよね。もし非同期処理がなかったら、サーバーから高画質な写真10枚をすべて読み込み終わるまで、画面全体が完全に固まってしまうはずです。タップしても反応せず、スクロールも止まってしまいます。
しかし、非同期処理を使えば、写真の読み込みといった重い処理をバックグラウンド(裏側)に任せることができます。その間もコンピューターは、ユーザーの画面タップやスクロールといった操作を止めることなく即座に処理し続けます。
サーバー側で写真のダウンロードが終わると、「準備完了」の合図が届いて画面の正しい場所に写真がパッと表示されます。これのおかげで、ユーザーはイライラするフリーズを経験することなく、アプリを快適に使い続けられるのです。
もう少し正確に言うと:複数人で作業することとは違います
非同期処理と聞くと、多くの人は「何人もの人が同時に手分けして作業する姿(並列処理)」をイメージしがちです。しかし非同期処理は、作業する人がたった1人だけでも十分に可能です。
レストランのシェフが1人しかいなくても、パスタを鍋に入れて茹でている8分間、じっと突っ立っているわけではありませんよね。麺が茹で上がるのを待つ間に、別のフライパンでソースを炒めるはずです。1人で作業していても、待ち時間として無駄になる時間を賢く活用しているわけです。
コンピューターもまったく同じです。頭脳(CPU)が1つだけでも、インターネット通信やファイルの保存のように時間のかかる外部作業を裏で走らせておき、その間に別の計算を休みなく進めるのが非同期処理の核心です。
🤔 よくある誤解
非同期処理は、複数のCPUが同時に作業する「並列処理」と同じ意味である。
非同期処理は「作業の待ち時間をどう扱うか」という仕組みの話です。CPUが1つだけでも、待ち時間を無駄にせず別の作業を進めることができます。
🧺 日常で出会う場面
非同期処理とは、前の作業が終わるまで手を止めて待つのではなく、待ち時間を使って別の作業を進めることで、時間を効率よく使う仕組みです。