generated at
Event Loop
eventをキューに積み、そこから1つずつ取り出してsingle threadで処理する
一つのeventが終われば、次のeventを処理する



参考





長所
対になるのはマルチスレッド
スレッドの生成や切り替えにリソースを消費する
そのため、eventが増えた時に性能が悪くなる
EventLoopはsingle threadなので、eventが増えてもメモリを食わない




EventLoopなやつ
Python
Ruby
Tokioも?
Rust
Perl

Eventの例
HTTP Request
コールバック関数

デメリット
どこか一つのイベントの処理が重ければ全体が重くなる
これへの対策の一つがノンブロッキングI/O
Node.jsではノンブロッキングI/Oがあるので、処理が止まらない #??
微妙にわからん


Node.jsでは接続ごとにスレッドを立てない
プロセス内で実行されるイベントを起動する
イベントとは


どんなに接続数が増えてもスレッドがメモリを食い潰すことはない
ほんまに?なんで?

ただのwhile loop


スレッドモデルと、イベントループモデルを
↑一つのスレッドと、↑1つのプロセスで
区別してるの、若干違和感なんだが、そういうもんなん?


p.21