同期処理
- 書いた順番に実行されていく
- 重たい処理が間にあると、そこで大きな待ち時間が生まれる
非同期処理
- 外部のサーバと通信する関数を呼んだあと、レスポンスが返るまでに一旦関数から抜けて別の処理を進めて
レスポンスを受け取り次第、呼び出し元に値を返す - Aという関数が完了次第、実行したい関数(function)を引数として渡して実行させるものをコールバック関数という
- JavaScriptでは、上述のコールバック関数で処理順をコントロールできるが、ネストが深くなる(コールバック地獄)など可読性が損なわれることがあるため、場合によってasync/await/promise/resolve(),reject()を用いる。
並列処理
- A、B、Cの処理をよーいどん、で3つ同時にスタートする
- 複数のプロセス上で、複数のスレッドが立ち上がる
- 一つのプロセス上で、複数のスレッドを切り替えながら処理をすることは並行処理という。
- 私が初めて触った言語のJavaやGolang, Pythonなどで並列処理が可能
おわりに
同期処理、非同期処理についてはJavaScriptを触る上で絶対に避けられないポイントのようだったので
今回調べてみた結果を簡単にまとめておきました。
参考にしたサイトは以下に記します。
JavaScriptの非同期処理を並列処理と勘違いしていませんか?
非同期処理ってどういうこと?JavaScriptで一から学ぶ
Javaの並行処理を理解する(入門編)
並行処理、並列処理のあれこれ
async/awaitで非同期処理はシンプルになる