免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
1.1IOの基礎
次のようにJava1.4以前のバージョン、IOのサポートは完璧ではないが、主な質問は以下のとおりです。
- データなしバッファません、IOのパフォーマンスの問題
- チャンネルでのC / C ++の概念ない、とだけ入力および出力ストリームませ
- 唯一の同期IO(BIO)をブロックをサポートし、多くの場合、通信スレッドにつながる長時間ブロックされています
- サポートされている文字セットが限定されている、いないハードウェアの移植
1.1.1 LinuxネットワークIOモデルプロファイル
Unixのは5つのIOモデルを提供します。
- ブロッキングIOモデル
- ノンブロッキングIOモデル
- IO多重化モデル
- IO信号駆動モデル
- 非同期IOモデル
Javaプログラマのためので、ネットワークプログラミング、これは一時的にそれほどの深い研究を行う、およびLinuxのネットワークモデルの低レベルの詳細未満でほとんどの時間は、その後の研究で使用します。
1.1.2 IO多重化
サーバ・スレッドが複数のクライアントのアクセス要求を処理する際にIOプログラミングでは、IOは、マルチスレッドまたは多重化技術することができます。IO多重化の最大の利点は、小規模なシステムのオーバーヘッドである、あなたは、各接続は処理のためのスレッドを作成する必要はありません。
IO 1.2 JAVAの進化
1)JDK1.3にJDK1.0のみBIO
2)開発APIとNIOライブラリ、メインクラスとインタフェースを提供する新しいjava.nioのパッケージをJDK1.4:
- 非同期I / O操作と他のバッファのByteBuffer
- 非同期I / O操作のための管路
- ServerSocketChannelのSocketChannelを含む様々なI /チャネルのO(同期または非同期)、および
- エンコードとデコード機能能力複数の文字セット
- マルチプレクサセレクタの非ブロッキングI / O操作
- 人気のPerlの実装の正規表現ライブラリに基づきます
- ファイルチャネルのFileChannel
3)、3面で大きな改善を元NIOライブラリのアップグレードをjdk1.7:
- プラットフォームに依存していたバッチファイル属性取得APIを提供し、プロファイルシステムと非結合
- AIOは、ネットワークソケットに対するファイルベースの非同期I / Oと非同期操作をサポートするための機能を提供します
- コンフィギュレーションおよびマルチキャストデータグラムのためのサポートを含む、完全なチャネルの機能、