Help us understand the problem. What is going on with this article?

同期処理、非同期処理、並列処理のざっくりとした違い

同期処理

  • 書いた順番に実行されていく
  • 重たい処理が間にあると、そこで大きな待ち時間が生まれる

非同期処理

  • 外部のサーバと通信する関数を呼んだあと、レスポンスが返るまでに一旦関数から抜けて別の処理を進めて レスポンスを受け取り次第、呼び出し元に値を返す
  • Aという関数が完了次第、実行したい関数(function)を引数として渡して実行させるものをコールバック関数という
  • JavaScriptでは、上述のコールバック関数で処理順をコントロールできるが、ネストが深くなる(コールバック地獄)など可読性が損なわれることがあるため、場合によってasync/await/promise/resolve(),reject()を用いる。

並列処理

  • A、B、Cの処理をよーいどん、で3つ同時にスタートする
  • 複数のプロセス上で、複数のスレッドが立ち上がる
  • 一つのプロセス上で、複数のスレッドを切り替えながら処理をすることは並行処理という。
  • 私が初めて触った言語のJavaやGolang, Pythonなどで並列処理が可能

おわりに

同期処理、非同期処理についてはJavaScriptを触る上で絶対に避けられないポイントのようだったので
今回調べてみた結果を簡単にまとめておきました。
参考にしたサイトは以下に記します。

JavaScriptの非同期処理を並列処理と勘違いしていませんか?
非同期処理ってどういうこと?JavaScriptで一から学ぶ
Javaの並行処理を理解する(入門編)
並行処理、並列処理のあれこれ
async/awaitで非同期処理はシンプルになる

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away