非同期IO周りの話

7
SKS rep @repeatedly

@cpp_akira そんな感じですねぇ.IO周りにもアプローチがいくつかあって,Async,Multiplexing,Non-Blockingとかあります.ごっちゃにしちゃっている人もいますががが

2011-05-16 11:36:07
Akira Takahashi @cpp_akira

@repeatedly Multiplexingはこれから調べようと思ってたとこです。まだ何もわかりません。非同期とノンブロッキングは同義語っぽいので一緒にしちゃっていいかなーと思います。

2011-05-16 11:38:04
SKS rep @repeatedly

@cpp_akira Async / Non-Blockingは結構微妙で,確かに同一にする人もいるんですが,実際のケースで考えると非同期は処理が非同期なのに対して,Non-Blockingはあくまで処理がブロックしないというだけですね.

2011-05-16 11:40:35
SKS rep @repeatedly

@cpp_akira libevとlibeioが分かれてるのもその違いだったりします.実際Non-Blocking with Multiplexingは今の主流だと思いますが(libevなど),ネットワークでファイルレベルのAsyncをやってるのは実際知らないです…

2011-05-16 11:42:49
Ryosuke Iwanaga @riywo

この辺も勉強せねば。。。 / Node.jsと非同期I/Oと混乱した私 - shutdown -r now http://htn.to/FaFrHv

2011-05-16 11:46:31
Nobuyuki Kubota @nobu_k

真面目なサンDル先生に非同期IOとノンブロッキングIOの差を教えて貰ってたけどよく分からなかったwww

2011-05-16 11:48:21
Akira Takahashi @cpp_akira

よくわからないですよね。 RT @nobu_k: 真面目なサンDル先生に非同期IOとノンブロッキングIOの差を教えて貰ってたけどよく分からなかったwww

2011-05-16 11:50:03
SKS rep @repeatedly

epollとかkqueueにもトリガーレベルとか違いがあるので,その辺気にしたくなければlibevとか使うしかないですね.まぁlibevはWindowsで(ry

2011-05-16 11:51:02
Akira Takahashi @cpp_akira

Node.jsの言うノンブロッキングとはなんなのか。

2011-05-16 11:59:15
Sadayuki Furuhashi @frsyuki

libevやlibeventは、ネットワークI/Oを多重化してくれるライブラリ。mpioはネットワークI/Oの多重化に加えてスレッドプールを実装していて、ネットワークI/Oを非同期I/Oのように使わせてくれるライブラリ。

2011-05-16 12:01:57
Sadayuki Furuhashi @frsyuki

Javaで言えば、NIOは前者でNettyは後者。msgpack-rpc的には後者が欲しい。

2011-05-16 12:02:14
Sadayuki Furuhashi @frsyuki

I/O多重化と非同期I/Oの違いはコレで。 "非同期I/O概説" http://lab.klab.org/files/alm/20070806/aio.pdf

2011-05-16 12:03:28