LoginSignup
181
148

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-08-15

同期処理

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

非同期処理

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

並列処理

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

おわりに

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

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

181
148
6

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
181
148