AI活用の教科書
バックエンド開発設計ふつう3分で読了

非同期処理

Asynchronousひどうきしょり

ひとことで言うと

ある処理の完了を待たずに、別の処理を先に進めておくやり方のことです。

📖 もうちょい詳しく

何が新しいの?

プログラムは、上から順に1つずつ命令をこなしていくのが基本です。でも、ネットへの問い合わせやファイルの読み書きは、結果が返ってくるまでに時間がかかります。その間ずっと立ち止まって待っていると、全体がもたつきます。非同期処理(ひどうきしょり)は、その「待ち時間」をムダにしないための考え方です。Webやスマホアプリのように、画面を止めたくない場面で広く使われています。

どうやって動いてるの?

時間のかかる処理を頼んだら、その完了を待たずに次の作業へ進みます。そして結果が用意できたときに「終わったよ」という合図を受け取り、続きの処理を行います。多くの言語では、この合図を扱うために「あとで結果が入る箱」(Promise や Future と呼ばれます)や、await(終わるまで待つ目印)といった仕組みが用意されています。中身では、完了を知らせる通知を見張る係がいて、空いた時間に別の仕事を回しています。

何ができるの?

たとえばWebページで、データを読み込みながらでもボタンを押せたり、スクロールできたりするのは非同期処理のおかげです。サーバー側でも、たくさんの利用者からの問い合わせを、1つずつ最後まで待たずに、待ち時間を使って次々とさばけます。結果として、同じ機械でもより多くの仕事を、より速く感じられる形でこなせるようになります。

🌱 身近なたとえ

カフェの店員さんで例えると分かりやすいです。注文を受けてコーヒーを淹れ始めたあと、できあがるまで突っ立って待つのではなく、その間に次のお客さんの注文を受けます。コーヒーができたら呼び出して渡します。1人ずつ最後まで付き添うより、待ち時間に別の仕事をはさむほうが、お店全体は速く回ります。非同期処理もこれと同じで、待ち時間を別の作業で埋めています。

✅ まず覚えるポイント

  • 時間のかかる処理の「完了を待たずに」次へ進むやり方です
  • 結果は、用意できたタイミングで合図を受け取って使います
  • 画面を止めない、待ち時間をムダにしない、が目的です
  • Promise(あとで結果が入る箱)や await がよく使われます
  • 待ち時間を使って多くの問い合わせをさばけるので、応答が軽く感じられます

🧭 よくある勘違い

非同期だと処理が速くなるの?

1つ1つの処理そのものが速くなるわけではありません。コーヒーを淹れる時間自体は変わらないのと同じです。速くなるのは「待ち時間に別の仕事を進められる」分で、全体の流れがスムーズになる、というのが正確な見方です。

非同期は並列処理と同じこと?

似ていますが別の話です。並列処理は複数の作業を文字どおり同時に動かすこと、非同期処理は「待っている間に手を空けて別を進める」段取りのことを指します。店員さんが1人でも、待ち時間をうまく使えば非同期は成り立ちます。同じ場面で両方が組み合わさることも多いです。

🧩 関連して覚えると楽な言葉

  • スレッド(thread): 処理を進める作業レーンのこと。非同期と組み合わせて使われます
  • JavaScript: ブラウザで動く言語で、非同期処理を多用する代表例です
  • ランタイム(runtime): プログラムが動く土台となる実行環境。Node.js のように非同期を前提にしたものもあります
  • レイテンシ(latency): 結果が返るまでの待ち時間。非同期がムダを減らす対象です

🏁 ひとことでまとめ

待ち時間に立ち止まらず、空いた手で別の作業を進めておく。それが非同期処理の正体です。