【初心者向け】同期処理と非同期処理の違いとは?わかりやすく解説!

コンニチハ

パンに塗り塗りジャム太郎です!

今回のテーマは

同期処理」と「非同期処理」の違い

についてです。


1.はじめに

プログラミングを学んでいると「同期処理」と「非同期処理」という言葉をよく耳にすると思います。

特にWeb開発やアプリ開発では、この概念を理解しておくことが重要です。

本記事では、初心者エンジニア向けに同期処理と非同期処理の違いをわかりやすく解説します。


2.同期処理とは

同期処理(Synchronous Processing)とは、処理が順番に実行される方式のことを指します。一つの処理が終わるまで次の処理が開始されません。

例:料理の準備(同期バージョン)

  1. 野菜を切る
  2. 鍋で炒める
  3. 水を入れて煮込む
  4. ルーを入れる

このように、一つの作業が終わらないと次の作業に進めないのが同期処理のイメージです。

メリットデメリット
コードがシンプルで理解しやすい処理に時間がかかる場合、待ち時間が発生する
処理の流れが予測しやすいユーザーの操作がブロックされる可能性がある

3.非同期処理とは

非同期処理(Asynchronous Processing)とは、ある処理を実行しながら別の処理を同時に進める方式のことを指します。

例:料理の準備(非同期バージョン)

  1. 野菜を切る(並行してご飯を炊く)
  2. 鍋で炒める(並行してサラダを作る)
  3. 水を入れて煮込む(並行して食器を準備する)

このように、時間がかかる処理を待つ間に別の作業を進められるのが非同期処理の特徴です。

メリットデメリット
処理の待ち時間を短縮できるコードの構造が複雑になりやすい
ユーザーの操作を止めずに進められる処理の順序が保証されない場合がある

4.具体的なコード例

同期処理の例(JavaScript)

console.log("A");
console.log("B");
console.log("C");

このコードを実行すると、

A
B
C

の順に出力されます。


非同期処理の例(JavaScript)

console.log("A");
setTimeout(() => {
    console.log("B");
}, 1000);
console.log("C");

このコードを実行すると、

A
C
B

の順に出力されます。


5.まとめ

同期処理

  • 順番に処理が実行される方式で、シンプルだが待ち時間が発生する

非同期処理

  • 並行して処理を進められる方式で、効率的だがコードが複雑になりがち

特にWeb開発では、API通信やファイルの読み書きなどで非同期処理を活用することが多いです。

状況に応じて適切な処理方式を選べるようにしていきましょう!


では、また次の記事で〜

投稿者 パンに塗り塗りジャム太郎

コンニチハ! Z世代のパンに塗り塗りジャム太郎です。 Web系自社開発企業でポンコツエンジニアをしております。 このブログでは最低1人にでもタメになってくれたらいいなぁ〜ぐらいの内容を発信しています。 お手柔らかによろしくお願いいたします。