ホームページ  >  記事  >  Java  >  Java NIO (1) Java NIO の概要

Java NIO (1) Java NIO の概要

大家讲道理
大家讲道理オリジナル
2017-04-11 14:06:081555ブラウズ

Java NIO は、次のコア部分によって グループ化されています:

  • Channels

  • Buffers

  • Selectors

Java NIO には多くのクラスとコンポーネントがありますが、私の意見では、Channel、Bufferと Selector がコア

API を構成します。 Pipe や FileLock などの他の コンポーネントは、3 つのコア コンポーネントと一緒に使用される単なるツール クラスです。したがって、この概要ではこれら 3 つのコンポーネントに焦点を当てます。他のコンポーネントについては、別の章で説明します。

チャネルとバッファ

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

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

これらのクラスに加えて、いくつかの興味深い

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

  • ByteBuffer

  • CharBuffer

  • DoubleBuffer

Float

Buffer

IntBuffer

  • LongBuffer

  • ShortBuffer

  • これらのバッファは、IO 経由で送信できる基本的な

    データ型

    (byte、short、int、long、float、double、char) をカバーします。
  • Java NIO には、メモリ マップされたファイルを表すために使用される

    MappedByteBuffer もあります。概要では説明しません。

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

    これは、セレクターを使用して 3 つのチャネルを 1 つのスレッドで処理する例です:
  • セレクターを使用するには、セレクターにチャネルを登録し、その select() メソッドを呼び出す必要があります。このメソッドは、登録済みチャンネルの
  • イベント

    の準備が整うまでブロックされます。このメソッドが返されると、スレッドはこれらのイベントを処理できるようになります。イベントの例には、新しい接続の受信、データの受信などが含まれます。

以上がJava NIO (1) Java NIO の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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