Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
shigeki_ohtsu
PPTX, PDF
28,450 views
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
Related topics:
Node.js Development
•
Read more
80
Save
Share
Embed
Embed presentation
Download
Downloaded 119 times
1
/ 28
2
/ 28
3
/ 28
4
/ 28
5
/ 28
6
/ 28
7
/ 28
Most read
8
/ 28
9
/ 28
10
/ 28
Most read
11
/ 28
12
/ 28
13
/ 28
14
/ 28
15
/ 28
16
/ 28
17
/ 28
18
/ 28
19
/ 28
20
/ 28
21
/ 28
22
/ 28
Most read
23
/ 28
24
/ 28
25
/ 28
26
/ 28
27
/ 28
28
/ 28
Recommended
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
例外設計における大罪
by
Takuto Wada
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
CTF for ビギナーズ バイナリ講習資料
by
SECCON Beginners
PPT
Glibc malloc internal
by
Motohiro KOSAKI
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PDF
こわくない Git
by
Kota Saito
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
PDF
SAT/SMTソルバの仕組み
by
Masahiro Sakai
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PDF
入門 シェル実装
by
Yusuke Sangenya
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
PPTX
RustによるGPUプログラミング環境
by
KiyotomoHiroyasu
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PPTX
Spanner移行について本気出して考えてみた
by
techgamecollege
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PPT
Raft
by
Preferred Networks
PDF
PostgreSQL: XID周回問題に潜む別の問題
by
NTT DATA OSS Professional Services
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PDF
Node.js入門
by
俊夫 森
More Related Content
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
例外設計における大罪
by
Takuto Wada
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
CTF for ビギナーズ バイナリ講習資料
by
SECCON Beginners
PPT
Glibc malloc internal
by
Motohiro KOSAKI
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
by
onozaty
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
Where狙いのキー、order by狙いのキー
by
yoku0825
例外設計における大罪
by
Takuto Wada
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
CTF for ビギナーズ バイナリ講習資料
by
SECCON Beginners
Glibc malloc internal
by
Motohiro KOSAKI
What's hot
PDF
オブジェクト指向できていますか?
by
Moriharu Ohzu
PDF
こわくない Git
by
Kota Saito
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
PDF
SAT/SMTソルバの仕組み
by
Masahiro Sakai
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
PPTX
冬のLock free祭り safe
by
Kumazaki Hiroki
PDF
入門 シェル実装
by
Yusuke Sangenya
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
PPTX
RustによるGPUプログラミング環境
by
KiyotomoHiroyasu
PDF
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
PPTX
Spanner移行について本気出して考えてみた
by
techgamecollege
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PPT
Raft
by
Preferred Networks
PDF
PostgreSQL: XID周回問題に潜む別の問題
by
NTT DATA OSS Professional Services
オブジェクト指向できていますか?
by
Moriharu Ohzu
こわくない Git
by
Kota Saito
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
by
NTT DATA Technology & Innovation
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
by
NTT DATA Technology & Innovation
SAT/SMTソルバの仕組み
by
Masahiro Sakai
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
冬のLock free祭り safe
by
Kumazaki Hiroki
入門 シェル実装
by
Yusuke Sangenya
Dockerからcontainerdへの移行
by
Kohei Tokunaga
コンテナ未経験新人が学ぶコンテナ技術入門
by
Kohei Tokunaga
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
by
Y Watanabe
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
RustによるGPUプログラミング環境
by
KiyotomoHiroyasu
ゲーム開発者のための C++11/C++14
by
Ryo Suzuki
アーキテクチャから理解するPostgreSQLのレプリケーション
by
Masahiko Sawada
Spanner移行について本気出して考えてみた
by
techgamecollege
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
Raft
by
Preferred Networks
PostgreSQL: XID周回問題に潜む別の問題
by
NTT DATA OSS Professional Services
Similar to そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PDF
Node.js入門
by
俊夫 森
PDF
Em synchrony について
by
Tomoya Kawanishi
PDF
Flow.js
by
uupaa
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PPTX
EchoyaGinhanazeSu_inoka.pptx
by
keink
PPTX
Node.js - JavaScript Thread Programming
by
takesako
PPTX
たのしいNode.js
by
ishiki-takai
PPTX
オタク×Node.js勉強会
by
虎の穴 開発室
PDF
Node-v0.12の新機能について
by
shigeki_ohtsu
PDF
Node予備校 vol.1 名古屋
by
Mori Shingo
PDF
東京Node学園#3 Domains & Isolates
by
koichik
PDF
Nodejuku01 ohtsu
by
Nanha Park
PPTX
React+redux+saga 03
by
TIS Inc
PPTX
Reactive Programming
by
maruyama097
PDF
Introduction pp.js
by
Mizushima Kazuhiro
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
PPTX
Reactive
by
Akihiro Ikezoe
PDF
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
PDF
PerlとJavaScriptとAndroidとiOSとのんのんバアとオレ
by
Naosuke Yokoe
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
Node.js入門
by
俊夫 森
Em synchrony について
by
Tomoya Kawanishi
Flow.js
by
uupaa
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
EchoyaGinhanazeSu_inoka.pptx
by
keink
Node.js - JavaScript Thread Programming
by
takesako
たのしいNode.js
by
ishiki-takai
オタク×Node.js勉強会
by
虎の穴 開発室
Node-v0.12の新機能について
by
shigeki_ohtsu
Node予備校 vol.1 名古屋
by
Mori Shingo
東京Node学園#3 Domains & Isolates
by
koichik
Nodejuku01 ohtsu
by
Nanha Park
React+redux+saga 03
by
TIS Inc
Reactive Programming
by
maruyama097
Introduction pp.js
by
Mizushima Kazuhiro
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
by
Naoya Ito
Reactive
by
Akihiro Ikezoe
Janogia20120921 yoshinotakeshi
by
Keisuke Ishibashi
PerlとJavaScriptとAndroidとiOSとのんのんバアとオレ
by
Naosuke Yokoe
More from shigeki_ohtsu
PDF
TLS, HTTP/2演習
by
shigeki_ohtsu
PDF
HTTP/2, QUIC入門
by
shigeki_ohtsu
PDF
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
PPTX
node-gypを使ったネイティブモジュールの作成
by
shigeki_ohtsu
PDF
HTTP/2の現状とこれから
by
shigeki_ohtsu
PDF
Technical Overview of QUIC
by
shigeki_ohtsu
PPTX
Stream2の基本
by
shigeki_ohtsu
PDF
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
by
shigeki_ohtsu
PPTX
SPDYの話
by
shigeki_ohtsu
PDF
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
PPTX
SPDYの中身を見てみよう
by
shigeki_ohtsu
PDF
HTTP/2.0がもたらすWebサービスの進化(後半)
by
shigeki_ohtsu
PDF
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
by
shigeki_ohtsu
PPTX
httpbis interim とhttp2.0相互接続試験の話
by
shigeki_ohtsu
PDF
Node最新トピックス
by
shigeki_ohtsu
PDF
Node.js で SPDYのベンチマーク体験サイトを作りました
by
shigeki_ohtsu
PDF
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
by
shigeki_ohtsu
PDF
httpbis interim@チューリッヒ レポート
by
shigeki_ohtsu
PDF
第43回HTML5とか勉強会 SPDY/QUICデモ
by
shigeki_ohtsu
TLS, HTTP/2演習
by
shigeki_ohtsu
HTTP/2, QUIC入門
by
shigeki_ohtsu
SSL/TLSの基礎と最新動向
by
shigeki_ohtsu
node-gypを使ったネイティブモジュールの作成
by
shigeki_ohtsu
HTTP/2の現状とこれから
by
shigeki_ohtsu
Technical Overview of QUIC
by
shigeki_ohtsu
Stream2の基本
by
shigeki_ohtsu
Node の HTTP/2.0 モジュール iij-http2 の実装苦労話
by
shigeki_ohtsu
SPDYの話
by
shigeki_ohtsu
Node-v0.12のTLSを256倍使いこなす方法
by
shigeki_ohtsu
SPDYの中身を見てみよう
by
shigeki_ohtsu
HTTP/2.0がもたらすWebサービスの進化(後半)
by
shigeki_ohtsu
HTTP/2.0 HPAC-03 エンコーディング手法 by tatsuhiro_t
by
shigeki_ohtsu
httpbis interim とhttp2.0相互接続試験の話
by
shigeki_ohtsu
Node最新トピックス
by
shigeki_ohtsu
Node.js で SPDYのベンチマーク体験サイトを作りました
by
shigeki_ohtsu
httpbis interim@シアトル レポート(第2回HTTP/2.0接続試験)
by
shigeki_ohtsu
httpbis interim@チューリッヒ レポート
by
shigeki_ohtsu
第43回HTML5とか勉強会 SPDY/QUICデモ
by
shigeki_ohtsu
そうだったのか! よくわかる process.nextTick() node.jsのイベントループを理解する
1.
そうだったのか! よくわかる
process.nextTick() Node.jsのイベントループを理解する IIJ 大津 繁樹 (@jovi0608) 2012年6月28日 東京Node学園6時限目
3.
Nodeの歩み(参考)2007/10 libev公開
2010/08 nodejs_jp開始2008/05 libeio公開 2010/09 no.de開始2009/09 Google V8公開 2010/11 Joyent管轄へ2009/02 ry Node開発開始 2011/02 node-v0.4.0リリース2009/05 node-v0.0.1リリース 2011/03 東京Node学園#12009/06 nodejs ML開始 2011/10 東京Node学園祭2009/10 npm公開 2011/11 node-v0.6.0リリース2009/11 JSConf EU ry発表 2011/12 Azureサポート2010/04 Herokuサポート 2012/01 isaacs管理へ2010/08 node-v0.2.0リリース 2012/06 node-v0.8.0リリース
4.
今日の話•
Nodeのイベントループとは• process.nextTickとは• node-devでの大論争• 今後どうなる?• process.nextTickの正しい使 い方おそらく世界初?のNode-v0.8ベースでイベントループを解説(libuvの大幅な変更に追随)(注: 説明はLinuxが対象です。)
5.
Nodeのイベントループとは、• Node の心臓
イベントループが終了したら Node は死にます。
6.
Nodeのイベントループの正体 Node
が起動する時に uv_run() が呼 ばれます。(src/node.cc:2910)https://github.com/joyent/node/blob/v0.8.0-release/deps/uv/src/unix/core.c#L265
7.
イベントループが回り続けるには
アクティブな handle/req がなけれ ば イベントループが終了https://github.com/joyent/node/blob/v0.8.0-release/deps/uv/src/unix/core.c#L252-261
8.
handle と req
の違い• handle – I/O が発生してない時でもイベントループを 維持 – (例) server.listen()• req – I/Oが発生している時だけイベントループを 維持 – (例) http.get()
9.
handle と req
の種類 handle reqASYNC 非同期ジョブの操作 CONNECT stream接続CHECK ループの最後の操作 WRITE stream書き込みFS_EVENT ファイルイベント操作 SHUTDOWN stream停止FS_POLL statの問い合わせ操作 UDP_SEND udp 送信IDLE アイドルの時の操作 FS ファイル操作NAMED_PIPE 名前付きパイプの操作 WORK ワーカスレッドPOLL fdイベントの操作 GETADDRINFO アドレス情報取得PREPARE ループの最初の操作PROCESS プロセスの操作TCP TCPの操作 後で見てTIMER タイマー操作 おいて下TTYUDP TTYPの操作 UDPの操作 さい。
10.
実際のコードでは、(その1)var http =
require('http'); アクティブ ハンドルvar server = http.createServer(); 0 アクティブハンドルが無いからNode終了
11.
実際のコードでは、(その2)var http =
require('http');var server = http.createServer(); アクティブserver.listen(1234); ハンドル追加 (+1) アクティブハンドルが作成されNode は終了しない。実際は epoll wait (Linux)して
12.
実際のコードでは、(その3)var http =
require('http');var server = http.createServer();server.listen(1234, function() { アクティブ server.close(); ハンドル削除 (+1-1=0)});アクティブハンドルがすぐ無効化されるのでNode終了
13.
イベントループの中身 7つのステップ
1. 時刻更新 2. タイマー実行 3. アイドル実行 4. Prepare実行 5. I/Oイベント実行 (libev) 6. Check実行 7. ハンドル終了
14.
Node-v0.8イベントループ概要
終わり 始まり setTimeout()nextTick() 1:時刻更新 7:ハンドル終了 6:run_check 2:run_timersコールバッ イベントループ nextTick() ク 一周(Tick) ユーザ 5:poll 3:run_idle プログラム 4:run_prepare libev+kernel epoll: Linux nextTick() kqueue: BSD event port: Solaris (注: ユーザプログラムは 3: run_idle から始まる
15.
イベントループを止めてはいけない!
終わり 始まり setTimeout() nextTick() 1:時刻更新 7:ハンドル終了 6:run_check 2:run_timers こんなコードはダメ! while(1) コールバッ ク while(1) { console.log(‘hoge’); 5:poll } 3:run_idle ずっとここ libev+kernel で止まる! 4:run_prepare epoll: Linux kqueue: BSD nextTick() event port: Solaris (注: ユーザプログラムは 3: run_idle から始まる。
16.
なぜ3カ所も nextTick() があるの?
17.
理由1:呼び出し順番setTimeout(function(){ console.log(‘3:foo’);
$ node tick-order.js}, 0); 1:piyoprocess.nextTick(function() { 2:hoge console.log(‘2:hoge’); 3:foo});console.log(‘1:piyo’);setTimeout() より process.nextTick() が先に呼ばれる (注: 将来仕様が変わる可能性があります。)
18.
理由1:呼び出し順番
終わり 始まり setTimeout() console.log(‘3:foo’) nextTick() 1:時刻更新 7:ハンドル終了 6:run_check 2:run_timers console.log(‘1:piyo’) コールバッ イベントループ nextTick() ク 一周(Tick) 5:poll 3:run_idle 4:run_prepare console.log(‘2:hoge’) nextTick()(注: ユーザプログラムは 3: run_idle から始まる。)
19.
理由2:入れ子の呼び出し順番process.nextTick(function() { setTimeout(function(){
console.log(‘4:foo'); $ node tick-order2.js }, 0); 1:piyo process.nextTick(function() { 2:bar console.log(‘3:hoge'); 3:hoge }); 4:foo console.log(‘2:bar');});console.log(‘1:piyo’);process.nextTick() のスコープ内でも setTimeout()より process.nextTick() が先に呼ばれる (注: 将来仕様が変わる可能性があります。)
20.
理由2:入れ子の呼び出し順番
終わり 始まりconsole.log(‘3:hoge’) setTimeout() console.log(‘4:foo’) nextTick() 1:時刻更新 7:ハンドル終了 6:run_check 2:run_timers console.log(‘1:piyo’) コールバッ イベントループ nextTick() ク 一周(Tick) 5:poll 3:run_idle 4:run_prepare console.log(‘2:bar’) nextTick()(注: ユーザプログラムは3: run_idleから始まる。)
21.
process.nextTick()の説明(マニュアルより)
イベントループの次以降のループでコールバッ クを呼び出します。 これは setTimeout(fn, 0) の 単純なエイリアスではなく、 はるかに効率的で す。for (var i = 0; i < 1024*1024; i++) { 処理時間 process.nextTick(function (){ Math.sqrt(i); } ); 0.360u 0.072s 0:00.44 97.7%} 約5倍の差for (var i = 0; i < 1024 * 1024; i++) { setTimeout(function () { Math.sqrt(i) }, 0); 1.700u 0.800s 0:02.51 99.6%} おそらくリンクリストの生成と時刻取得のオーバヘッドによるものだろう(未
22.
node-v0.9に向けて isaacs からの提案•
process.nextTick()でイベントハンドラを追加するのはよくやること だけど 次のイベントループでハンドラが登録されるまでの間にイベントが 発生したりするとI/Oの取りこぼしが起きてしまう。• 次のイベントが発生する前に確実にハンドラを登録をするために、 V8でJSを実行した直後に process.nextTick() に登録された関数を全部 実行するようにしたい。• 再帰処理とかの展開もそこで行うので次のようなコードでは setTimeout() は起動しなくなるよ。 setTimeout(function() { console.log('timeout'); }, 1000); process.nextTick(function f() { process.nextTick(f); });
23.
node-devでの大論争
推進派 擁護派• 今までの動作がそもそもおか • 別のAPIにすればいいじゃない しかった。正しい動作に変え か るだけ • 実際にコード変更するのがど• CPU処理の分散のために再帰を んなに大変か 使うのは悪いこと、child • どうせ今さら何言っても聞き process を使え 入れてくれないだろう• idle用リスナの用途に再帰を使 うのはわからんでもないが、 setTimeoutを使え• API名を変えるのはもう遅い• 実際にI/Oの取りこぼしでバグ が出ている。この変更でそれ を直すのが優先する
24.
今後どうなるのか(想像)
終わり 始まり setTimeout() 1:時刻更新 7:ハンドル終了 nextTick()nextTick() 2:run_timers 全展開 全展開 6:run_check コールバッ イベントループ ク 一周(Tick) 5:poll 3:run_idle 4:run_prepare libev+kernel epoll: Linux kqueue: BSD event port: Solaris 再帰は一定回数繰り返したら遅延させるかも
25.
process.nextTickの正しい使い方var events =
require('events');var util = require('util'); 非同期イfunction Hoge() { ベントの var self = this; 生成 process.nextTick(function() { self.emit('foo'); });}util.inherits(Hoge, events.EventEmitter);var hoge = new Hoge();hoge.on('foo', function() { console.log('foo event emitted');});
26.
process.nextTickの正しい使い方var events =
require('events');var util = require('util');function Hoge(cb) { 非同期コール if(cb) { バックの呼び出 process.nextTick(function() { cb(); し }); }}util.inherits(Hoge, events.EventEmitter);Hoge.prototype.setfoo = function(arg) { this.foo = arg;};var hoge = new Hoge(function() { hoge.setfoo('bar'); console.log(hoge.foo);});
27.
process.nextTickの再帰を避けるvar cluster =
require('cluster');if (cluster.isMaster) { CPU消費処理は var worker = cluster.fork(); 子プロセスで worker.on('message', function(msg) { console.log(msg); });} else { //子プロセス while(1) { process.send(‘hoge’); }}
28.
まとめ• Node のイベントループの仕組みを良く理解
した上でイベントループを止めないことを意 識してコードを書きましょう。• process.nextTick() は、 – 非同期イベントの発生 – 非同期コールバックの実行 の用途で使いましょう。• CPUを消費する処理には、child process を利 用しましょう。• node-v0.9 では process.nextTick()の動作仕様 が変わる予定です。
Download
[8]
ページ先頭
©2009-2025
Movatter.jp