JavaScriptは基本的にシングルスレッドであるのに、非同期処理を行っていると聞き、びっくりして、色々調べたのですが、いまいちどういうことなのか分かりません。
こちらが大変分かりやすかったです。
キューに同期的に詰めて、それから関数を実行し、何かしらのイベントに応じて、非同期的に関数をキューに詰めていく。
これを非同期処理と呼んでいるようですが、私の中で、非同期処理というと、このサイトで説明されているような図を、すなわちスレッドが複数ある様子を想像します。
例えば、JavaScriptらしく、ajax通信などを考えた時に、レスポンスが返ってきたら、コールバック関数を実行するというようなコードを書くと思うのですが、シングルスレッドでどのようにこれを実現するのでしょうか?
マルチスレッドであれば、まず通信が始まったら別のスレッドがそれを管理し、レスポンスを受け取ると、呼び出し元へと返し、そして、コードバック関数が実行される、という流れになると思いますが、シングルスレッドですと、通信を見ておくスレッドがいないのですよね?
どのように説明されるのでしょうか?
お分かりの方、解説お願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/05/14 11:32
2017/05/14 13:05 編集
退会済みユーザー
2017/05/14 14:35
2017/05/14 14:48
退会済みユーザー
2017/05/16 00:39