JAVAに、IOの移行パス

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/yuan1164345228/article/details/94344977

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と非同期操作をサポートするための機能を提供します
  • コンフィギュレーションおよびマルチキャストデータグラムのためのサポートを含む、完全なチャネルの機能、

おすすめ

転載: blog.csdn.net/yuan1164345228/article/details/94344977
おすすめ