0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

非同期処理とは何? - 中学生でもわかる解説

Posted at

プログラミングの「待ち時間」問題

あなたがスマホでアプリを使っている時、こんな経験はありませんか?

  • 写真をアップロード中でも、他の投稿を見られる
  • 動画を読み込み中でも、コメントが書ける
  • メッセージを送信中でも、画面がスクロールできる

これ、実は「非同期処理」という技術のおかげなんです。

非同期処理って何?

**非同期処理とは、「待たずに次の作業を進められる仕組み」**のことです。

レストランで例えてみよう

同期処理(待つやり方)

あなたがレストランの店員だとします。

  1. お客さんAの注文を受ける
  2. 厨房に伝える
  3. 料理ができるまでじっと待つ(他のことは何もしない)
  4. できた料理を運ぶ
  5. やっとお客さんBの注文を聞きに行く

これだと、めちゃくちゃ時間がかかりますよね?お客さんBは「まだ注文聞いてくれないの?」とイライラします。

非同期処理(待たないやり方)

  1. お客さんAの注文を受ける
  2. 厨房に伝える
  3. 待たずにお客さんBの注文を聞きに行く
  4. さらにお客さんCの注文も聞く
  5. 料理ができたら運ぶ

複数のことを同時進行できるので、効率的ですよね!

プログラミングではどう使う?

例1:画像をダウンロードする

同期処理だと...

画像1をダウンロード(5秒待つ)
↓
画像2をダウンロード(5秒待つ)
↓
画像3をダウンロード(5秒待つ)
= 合計15秒

非同期処理だと...

画像1、2、3を同時にダウンロード開始
↓
一番速いものから順に表示
= 約5秒で完了!

例2:SNSアプリ

あなたがInstagramで投稿を見ている時:

  1. 写真を読み込み中(3秒かかる)
  2. でも待たずに次の投稿にスクロールできる
  3. コメントも書ける
  4. いいねもできる

もし同期処理だったら、1枚の写真が読み込まれるまで画面が固まって、何もできません。最悪ですよね?

非同期処理が活躍する場面

1. インターネット通信

  • サーバーからデータを取得する
  • メッセージを送信する
  • 天気予報を取得する

なぜ? インターネット通信は時間がかかるから。待っている間に他のことをしたい。

2. ファイルの読み書き

  • 大きな動画ファイルを保存
  • 写真を読み込む

なぜ? ファイル操作も時間がかかる。

3. タイマー機能

  • 3秒後に通知を表示
  • 1分ごとに時刻を更新

なぜ? 待っている間、アプリを止めたくない。

身近な例で理解しよう

学校の掃除当番

同期処理(非効率):

  • 太郎:黒板を消す(みんな待つ)
  • 花子:机を運ぶ(みんな待つ)
  • 次郎:ほうきで掃く(みんな待つ)

非同期処理(効率的):

  • 太郎:黒板を消す
  • 花子:同時に机を運ぶ
  • 次郎:同時にほうきで掃く

→ 作業時間が3分の1に!

メリットとデメリット

メリット

速く感じる
待ち時間が減るので、アプリがサクサク動く

画面が固まらない
処理中でも他の操作ができる

効率的
同時に複数の作業を進められる

デメリット

プログラムが複雑になる
「どの作業がいつ終わるか」を管理するのが大変

バグが起きやすい
タイミングのズレでエラーが出ることも

プログラミングでの書き方

JavaScriptでの例を見てみましょう。

昔の書き方

// 3秒後にメッセージを表示
setTimeout(function() {
  console.log("3秒経ちました!");
}, 3000);

console.log("すぐ表示される");

表示順:

  1. "すぐ表示される"
  2. (3秒待つ)
  3. "3秒経ちました!"

今の書き方(async/await)

async function getWeather() {
  console.log("天気を取得中...");
  const data = await fetch("天気API");
  console.log("今日は晴れです!");
}

awaitがあると「ここで待つ」という意味になります。

まとめ

非同期処理は、**「待たずに次の作業を進められる魔法の仕組み」**です。

  • スマホアプリがサクサク動くのも
  • 動画を見ながらコメントできるのも
  • ゲームがカクつかないのも

ぜんぶ非同期処理のおかげ!

プログラミングを学ぶなら、絶対に知っておきたい重要な概念です。最初は難しく感じるかもしれませんが、「複数のことを同時進行する」というイメージを持っておけば大丈夫。

あなたが毎日使っているアプリの裏側では、この非同期処理がフル活用されているんですよ!


もっと知りたい人へ

  • Promise(約束)という仕組み
  • async/awaitの詳しい使い方
  • コールバック関数との違い

これらを学ぶと、さらに理解が深まります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?