0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Posted at

非同期処理と同期処理は、プログラムの実行の仕方や順序における2つの主要なアプローチです。
それぞれの特性を以下に説明します。

同期処理 (Synchronous)

  1. 一つずつ順番に実行: 同期処理では、コードは上から下へと一つずつ、順番に実行されます。

  2. 待機: もし途中の操作が時間がかかるもの(例えば、大量のデータを処理する操作)であった場合、その操作が完了するまで次の操作は待機されます。

  3. ブロック: 上記の待機のため、時間がかかる操作中はアプリケーション全体が「ブロック」され、他の操作を受け付けないことがあります。

非同期処理 (Asynchronous)

  1. 同時に複数の操作: 非同期処理では、一つの操作が完了を待たずに次の操作が始まることができます。

  2. コールバックやPromise: 非同期の操作が完了したら、コールバック関数を実行したり、Promiseが解決または拒否されることで、その結果を取り扱うことが一般的です。

  3. 非ブロッキング: 非同期処理はアプリケーションを「ブロック」しないので、例えばネットワークリクエストを待っている間もユーザーインターフェースは反応し続けることができます。

同期的な例:

const result = database.fetchData();
console.log(result);
console.log("Finished");

上記の場合、fetchDataの処理が終わるまで、次のconsole.logの実行が待たれるため、データ取得に時間がかかると"Finished"の出力も遅れます。

非同期的な例:

database.fetchDataAsync((result) => {
    console.log(result);
});
console.log("Finished");

上記の場合、非同期のfetchDataAsyncが即座に返し、"Finished"が先に出力される可能性があります。
データの取得が完了したら、コールバック関数が実行されて結果が出力されます。

結論

同期処理は順番に一つずつ処理が行われ、一つの処理が終わるまで次の処理は待たされます。
一方、非同期処理では、一つの処理が終わるのを待たずに次の処理が進行し、結果や完了の通知は後からコールバックやPromiseを使って取り扱われます。

その他わかりやすかった記事:非同期処理とは何か、何が嬉しいの?

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?