blog

NIO入門

はじめに Java1.4のI/Oシステムでは、ストリーム指向のI/Oシステムが提供され、システムは一度に1バイトのデータを処理し、データのバイトを生成する入力ストリーム、データのバイトを消費する出力ス...

Nov 22, 2020 · 2 min. read

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コピーを削減。

この記事がお気に召しましたら、下のイメージを長押しして購読番号に従って、よりエキサイティングなコンテンツをご覧ください!

Read next

フリップブックアニメーションのシンプルなjs実装

![フリップブック] フリップブックを実現するための簡単なjsを介して <!DOCTYPE html> <html lang="ja">. <head> <meta cha

Nov 22, 2020 · 11 min read

DVWAを配置する

Nov 22, 2020 · 1 min read

棚のAPPが拒否された理由

Nov 21, 2020 · 1 min read

vueのurlフェッチ

Nov 19, 2020 · 1 min read