NIO異なるプロセスとBIOと

NIO:

同期非ブロッキング、サーバーの実装モード複数の処理スレッドを要求します、すなわち、クライアントから送信された接続要求がありますマルチプレクサへの登録IO要求が処理されるポーリングに接続されたマルチプレクサ。
複数の接続の数、および接続が短い、チャットルーム、弾幕システム
NIOですJDK1.4 JAVAは、新機能のシリーズはNIO、IO同期非ブロッキングとして集合的に知られている、入力/出力を向上させ、関連するクラスは、パッケージjava.nioの範囲内にある提供します

NIOの特徴:

NIOは、3つのコアコンポーネントがあります。
チャンネル(管)、緩衝液(バッファー)、セレクタ(セレクタ
1.NIO指向バッファ、またはブロック指向のプログラミング、データは彼の(バッファ)の後の処理のためにバッファに読み込まれ、必要に応じて、プロセスの柔軟性を増加させる、バッファに移動前後でありますそれは、高度にスケーラブルな非ブロックのネットワークの使用を提供することができます。
2.Java NIO非ブロックモード、そのスレッドまたは読み取りデータチャネルからの送信要求という、それだけのデータが現在利用可能な取得することができ、データは現在利用できない場合、それは何かを得るのではなく、残りのスレッドはありませんデータがなるまで、スレッドは他のことをし続けることができます読み取ることができる前にブロックされ、非ブロック書き込みは、チャネルにいくつかのデータを書き込むためのスレッド要求真であるが、それは完全にこのスレッド作品を書くのを待つ必要はありませんあなたは、何か他に行うことができます
3.NIOは、複数の操作を処理するためのスレッドで行うことができます。前のIOが10000割り当てる必要がブロッキングとは異なり、実際の状況に応じて、50または100は、プロセス・スレッドに割り当てることができる10000のリクエストにわたって存在すると仮定する
多重化技術を用いて4.HTTP2.0し、その結果、同じ同時接続数のリクエスト、同時要求し、より大きな数桁の複数HTTP1.0

上記の特性に基づいて、我々は結論付けることができ、そのBIOとNIOの違い

1.BIOデータが処理ストリーミング、および方法でブロックを処理NIOデータは、I / O効率/多くのIは、Oの流れよりも高効率ブロック
遮断される2.BIOを、非ブロッキングNIOある
3.BIOベースバイトストリームと文字ストリームの操作を、そしてNIO Channerベースおよびバッファ動作は、データは常にからバッファへのチャネルから読み取りまたはチャネル、イベントにセレクタを監視するための複数のチャネル(バッファに書き込まれます。このような接続要求は、データが到着する、等)、及び従って単一スレッド複数のクライアント・チャネルを使用してモニターすることができます
以下はNIOを示すフローチャートです。
ここに画像を挿入説明
関係を見ることができます。
1.それぞれのチャネル・バッファ(バッファまたはアレイ)に対応する。
2.Selectorつのスレッド、複数のチャンネルに対応するスレッド。
この図は、チャネルに切り替えチャネルセレクタに登録された両者を反映していますイベントの決定は、イベントは非常に重要な概念であり、
異なるイベントに基づいて4.Selector、スイッチングの各チャネル
5.Bufferは、メモリブロックであり、底部層が配列され、書き込みデータがバッファによって読み取られ、このBIOはない、双方向、異なる性質、BIOまたは番号の入力ストリームまたは出力ストリームを持っていますが、NIOバッファが読むことができました書くことができますが、カットする必要が
6.Channelは双方向である、あなたは、Linuxのような基礎となるオペレーティングシステムの条件に戻ることができます、基礎となるオペレーティングシステムは、双方向チャネルであります

悪いの学習時間の不足、あまりにも浅い知識は、ご容赦ください。

人々の10種類が世界であり、1は、1つのバイナリを理解していないで、バイナリを理解することです。

公開された71元の記事 ウォン称賛54 ビュー420 000 +

おすすめ

転載: blog.csdn.net/weixin_43326401/article/details/104138419