なぜJavascriptはシングルスレッドかつ非同期通信なのか


http://indori.blog32.fc2.com/blog-entry-1298.html
同じ理由でJavascriptもシングルスレッドなのだと思う。

シングルスレッドだとファイルの読み込みなどの重い処理をしたときに次の処理まで長い待ち時間が発生しうる。
それだと使い者にならないので、そのような処理は処理を投げる(ファイル読み込みの場合はhttpリクエストをブラウザに投げる)ことだけをまず行い、イベントループにでぶち込んで他の処理を行う(他の処理も同じようにイベントループにぶちこむ)。

イベントループを監視してる最中に、その処理が終わっていたらFIFOでコールバック関数を実行する。
これが現実的な解決方法であり、非同期処理そのものだ。

Published by

jiyu

(English and Japanese) Web Engineering / Startup / CreativeChain & CREA / Bitcoin / Anime / Karate / Pokemon Web Engineer adores Javascript much. About me: http://jiyu.lol/