非同期処理について 同期処理と非同期処理の違い
同期処理とは

プログラムが書いた順番に実行されていく方式です。
その処理の1つに時間のかかる処理があると、その実行が完了するまで次の処理には進みません。

非同期処理とは

外部のサーバと通信する関数を呼んだあと、 レスポンスが返るまでに一旦関数から抜けて別の処理を進めて レスポンスを受け取り次第、呼び出し元に値を返します。

Aという関数が完了次第、実行したい関数(function)を引数として 渡して実行させるものを「コールバック関数」といいます。

つまり、非同期処理とは「ある関数が呼び出されたとき、戻り値として本来渡したい結果を返すのではなく、 一度関数としては終了し(=呼び出し元に戻る)、後で『本来渡したかった値』を返せる状態になったときに、 呼び出し元にその値を通知する」という仕組みのことです。   

例)ボタンをクリックしたときにUIスレッドとは別のスレッドを起動して、
UIスレッドを専有しないことで、ファイルダウンロード中でもUIが固まらないようにします。

C#では、非同期処理(マルチスレッド)は、Thread、Task、async awaitなどで実装できます。

メインスレッドとは別のスレッドを立ち上げて実行するイメージです。

ただし、JavaScriptでは、シングルスレッドでしか動きません。
JavaScriptで非同期処理(マルチスレッド)を実現するためには、すでに用意されている非同期関数を用いるか、
setTimeout()を使い、自分で非同期関数を実装するなどの方法があります。(これはまた今度)
  


今日はここまで。