ホームページ  >  記事  >  Java  >  JAVA-1NIO の詳細な紹介

JAVA-1NIO の詳細な紹介

零下一度
零下一度オリジナル
2017-06-25 10:44:461029ブラウズ

JAVA-1NIO の概要

Java NIO は次のコア部分で構成されています:

  • Channels

  • Buffers

  • Selectors

他にもたくさんありますクラスとコンポーネントですが、私の意見では、チャネル、バッファー、セレクターがコア API を形成します。 Pipe や FileLock などの他のコンポーネントは、3 つのコア コンポーネントで使用される単なるユーティリティ クラスです。したがって、この概要ではこれら 3 つのコンポーネントに焦点を当てます。他のコンポーネントについては、別の章で説明します。

チャネルとバッファ

基本的に、すべての IO は NIO のチャネルから始まります。チャンネルはストリームに似ています。 データはチャネルからバッファに読み取ることも、バッファからチャネルに書き込むこともできます。以下にその例を示します:

チャネルとバッファにはいくつかのタイプがあります。 JAVA NIO の主なチャネル実装は次のとおりです。チャネルは UDP および TCP ネットワーク IO、およびファイルをカバーしますIO。

    これらのクラスに加えて、いくつかの興味深いインターフェイスがありますが、簡単にするために、概要では言及しないようにしました。これらについては、このチュートリアルの関連する他の章で説明します。
  • Java NIO の主要な Buffer 実装は次のとおりです:

  • ByteBuffer

  • CharBuffer

  • DoubleBuffer

FloatBuffer

IntBえー

  • LongBuffer

  • ShortBuffer

  • これらのバッファは、IO を通じて送信できる基本的なデータ型 (byte、short、int、long、float、double、char) をカバーします。

  • Java NIO にも MappedByteBuffer があります。これは、メモリ マップされたファイルを表すために使用されます。概要では説明しません。
  • Selector

  • Selector を使用すると、単一のスレッドで複数のチャネルを処理できます。アプリケーションが複数の接続 (チャネル) を開いているものの、各接続のトラフィックが非常に低い場合は、Selector を使用すると便利です。たとえば、チャット サーバー内です。
  • これは、セレクターを使用して 3 つのチャネルを 1 つのスレッドで処理する例です:

  • セレクターを使用するには、セレクターにチャネルを登録し、その select() メソッドを呼び出す必要があります。このメソッドは、登録されたチャネルでイベントの準備ができるまでブロックされます。このメソッドが返されると、スレッドはこれらのイベントを処理できるようになります。イベントの例としては、新しい接続の受信、データの受信などが挙げられます。

以上がJAVA-1NIO の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。