1. ottoman1529

    Posted

    ottoman1529
Changes in title
+Node.js 日記
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,38 @@
+# スレッドモデルとイベントループ
+大量のリクエストをさばくための処理形式
+
+## スレッドモデル
+Requestに対し、Threadを立ち上げて対応
+大量に来ると、Request処理待ちが発生する
+
+## イベントループ(Node.js)
+QueueでEventLoopを回す(メインのスレッド)
+ →Requestをためる
+I/O(バックグラウンドのスレッド)
+
+メリット:
+前の処理が終わるまで待つ必要がない
+デメリット:
+処理の終了順番が把握できない
+ループをブロックしないプログラミング(NON-Blocking)が必要
+
+#ノンブロッキングな書き方とは
+時間の掛かりそうな処理はコールバック関数で書く
+
+```javascript:test1.js
+//non blocking
+setTimeout(function() {
+ console.log("hello");
+}, 1000);
+console.log("world");
+```
+結果:helloの処理(表示)を待たずにworldが表示される
+
+```javascript:test2.js
+//blocking
+var start = new Date.getDate()
+while (new Date.getDate() < start + 1000);
+console.log("world");
+```
+
+結果:helloの処理(表示)を待ってworldが表示される