NIOシリーズ-00-4種IO比較

902 ワード

宣言
このシリーズの文章は書籍「Netty権威ガイド」の第2版から整理された.学習ノートを記録するためだけです.内容の権利侵害が認められた場合、直ちに本人に関連内容の削除を通知してください.
[TOC]
説明
BIO、NIO、AIOの理解については、この2人の仁兄の文章を見てください:BIO|NIO|AIO(Java版--転)JAVAにおけるBIO、NIO、AIOの理解も話しています
なお、ここでいう「擬似非同期IO」とはスレッドプールを用いたBIOモデルを指す
四種類のIOの対比
ひかくこうもく
同期ブロック(BIO)
擬似非同期I/O
ノンブロッキング(NIO)
非同期(AIO)
クライアント個数(I/O)スレッド
1:1
S:C,SはCより大きくてもよい
S:1,IOスレッドは複数のクライアント接続を処理できる
M:0追加のスレッドを起動する必要がなく、パッシブコールバック
I/Oタイプ(ブロック)
ブロッキング
ブロッキング
ノンブロッキング
ノンブロッキング
I/Oタイプ(同期)
同期
同期
同期
非同期
APIの使用難易度
単純
簡単
非常に複雑
複雑で煩わしい
デバッグの難易度
単純
単純
複雑
複雑
しんらいせい
非常に悪い

高い
高い
スループット
非常に低い

高い
高い
後続記事
後に を例に、上記4のIOモデルをそれぞれ用いて実現する.
NIOシリーズ-01-伝統BIO NIOシリーズ-02-アップグレード版BIO NIOシリーズ-03-NIO NIOシリーズ-04-AIO
参考資料:「Netty権威ガイド」第2版