🐡
非同期処理とは?ていうか同期処理すら何?(JavaScript)
↓わかりやすい図
同期処理の意味から
プログラム内で順番に処理が実行される処理のこと。ある処理が完了するまで次の処理は実行されず、プログラムはその処理が終了するまで待機します。
例
console.log('処理を開始します');
// 同期的な処理
function syncFunction() {
console.log('同期的な処理が実行されました');
}
syncFunction();
console.log('処理が完了しました');
syncFunction関数が同期的に呼び出されています。つまり、この関数が完了するまで次の処理は実行されません。
結果
処理を開始します
同期的な処理が実行されました
処理が完了しました
同期処理では、処理の順序が保証され、一つの処理が終了するまで次の処理は実行されません。
シンプルで理解しやすい反面、待機時間が長くなると他の処理をブロックする可能性がある。
本題の非同期処理について
複数の処理を並列して実行できる。(簡単に理解するためこの説明だけ。↑の画像を参考に)
例
// 非同期処理の例:setTimeout関数
console.log('処理を開始します');
setTimeout(function() {
console.log('非同期処理が完了しました');
}, 2000);
console.log('処理を続行します');
結果
処理を開始します
処理を続行します
(2秒後)
非同期処理が完了しました
setTimeout関数によって指定された処理が非同期であるため、プログラムの実行はそのまま進行します。つまり、非同期処理が待機している間に、他の処理が続行されます。そして、指定された時間が経過した後に、コールバック関数が実行されます。
まとめと付け加え情報
非同期処理と同期処理を簡単にまとめると以下の通りです:
同期処理:
- 処理が一つずつ順番に実行される。
- 一つの処理が完了するまで次の処理は実行されない。
- 処理の順序が保証される。
- 処理中に他の処理が待たされる可能性がある。
非同期処理:
- 処理が同時に実行されることがあり、完了の順序が保証されない。
- 待機中の処理があっても他の処理が実行される。
- コールバック関数やPromise、非同期関数などを使用して、非同期的に処理を実行する。
- 待機中の処理が終了するのを待たずに、他の処理が進行するため、効率的なプログラム実行が可能。
非同期処理は、ファイルの読み書き、ユーザー入力の処理など、時間のかかる操作や外部リソースへのアクセス時に重要です。
同期処理は、順序が重要である場合や、待ち時間が許容される場合に使用されます。
参考動画↓
Discussion