NIOのプロフィール。
Java1.4のI/Oシステムでは、提供されるI/Oシステムはストリーム指向のI/Oシステムであり、システムは一度に1バイトのデータを処理し、入力ストリームは1バイトのデータを生成し、出力ストリームは1バイトのデータを消費し、ストリーム指向のI/Oは非常に遅いですが、Java1.4ではブロック指向のI/OシステムであるNIOが導入され、システムはブロックの処理の処理を処理し、各操作は1つのステップでデータベースを生成または消費し、これはバイト単位のデータ処理よりもはるかに高速です。各操作は、1つのステップでデータベースを生成または消費し、ブロックによる処理は、バイト単位でデータを処理するよりもはるかに高速です。
NIOとIOの主な違い
NIOには、バッファ、チャネル、セレクタなど、マスターすべきコア・オブジェクトがいくつかあります。
チャンネル
パイプに似たチャネルで、クライアントとサーバーを接続し、データを転送せずにバッファパスするために使用されます。
バッファ。
データの保存/転送
position は現在のポインタの位置を表します。データを読み込む際には、flip() メソッドを呼び出して位置を設定する必要があります。
セレクタ:NIOのノンブロッキング実装で、通常のIO接続はクライアントとサーバーの直接接続です。Selectorをミドルウェアとして使用することで、サーバーはSelectorから準備のできたデータを取得することができ、サーバー自体はノンブロッキングになります。
NIOが速い理由:ゼロコピー
ゼロコピーとは、コピーをしないことではなく、コピーを減らすことです。
IO:物理メモリ→カーネル空間→ユーザ空間→アプリケーション
NIO:ディスク→物理メモリにマッピングされたファイル→アプリケーション、1コピーを削減。
この記事がお気に召しましたら、下のイメージを長押しして購読番号に従って、よりエキサイティングなコンテンツをご覧ください!