>  기사  >  Java  >  Java NIO 시리즈 튜토리얼 1: Java NIO에 대한 간략한 소개

Java NIO 시리즈 튜토리얼 1: Java NIO에 대한 간략한 소개

php是最好的语言
php是最好的语言원래의
2018-07-30 10:39:471847검색

Java NIO는 다음과 같은 핵심 부분으로 구성됩니다.

  • Channels

  • Buffers

  • Selectors

제 생각에는 Channel, Buffer가 많이 있습니다. 및 Selector가 핵심 API를 구성합니다. Pipe 및 FileLock과 같은 다른 구성 요소는 세 가지 핵심 구성 요소와 함께 사용되는 유틸리티 클래스일 뿐입니다. 따라서 이 개요에서는 이 세 가지 구성 요소에 중점을 둘 것입니다. 다른 구성 요소는 별도의 장에서 다룹니다.

채널 및 버퍼

기본적으로 모든 IO는 NIO의 채널에서 시작됩니다. 채널은 스트림과 약간 비슷합니다. 데이터는 채널에서 버퍼로 읽혀지거나 버퍼에서 채널로 쓰여질 수 있습니다. 다음은 그림입니다.

여러 유형의 채널과 버퍼가 있습니다. 다음은 JAVA NIO의 몇 가지 주요 채널 구현입니다.

  • FileChannel

  • DatagramChannel

  • SocketChannel

  • ServerSocketChannel

보시다시피 이러한 채널은 UDP 및 TCP 네트워크 IO 및 파일을 다룹니다. IO.

이러한 클래스와 함께 몇 가지 흥미로운 인터페이스가 있지만 단순성을 위해 개요에서는 언급하지 않으려고 노력했습니다. 관련이 있는 이 튜토리얼의 다른 장에서 이에 대해 설명하겠습니다.

다음은 Java NIO의 주요 버퍼 구현입니다.

  • ByteBuffer

  • CharBuffer

  • DoubleBuffer

  • FloatBuffer

  • IntB uffer

  • LongBuffer

  • ShortBuffer

이러한 버퍼는 IO를 통해 보낼 수 있는 기본 데이터 유형(byte, short, int, long, float, double 및 char)을 다룹니다.

Java NIO에는 메모리 매핑 파일을 나타내는 데 사용되는 MappedByteBuffer도 있습니다. 개요에서는 설명하지 않겠습니다.

Selector

Selector를 사용하면 단일 스레드가 여러 채널을 처리할 수 있습니다. 애플리케이션이 여러 연결(채널)을 열지만 각 연결의 트래픽이 매우 낮은 경우 Selector를 사용하는 것이 편리할 수 있습니다. 예를 들어 채팅 서버에서.

다음은 Selector를 사용하여 단일 스레드에서 3개 채널을 처리하는 그림입니다.

Selector를 사용하려면 Selector에 채널을 등록한 다음 해당 select() 메서드를 호출해야 합니다. 이 메소드는 등록된 채널에 이벤트가 준비될 때까지 차단됩니다. 이 메서드가 반환되면 스레드는 이러한 이벤트를 처리할 수 있습니다. 이벤트의 예로는 새 연결 수신, 데이터 수신 등이 있습니다.

관련 기사:

Java NIO 시리즈 튜토리얼 2: Java NIO의 채널형 스트림

Java NIO 시리즈 튜토리얼 3: 버퍼의 기본 사용법

관련 비디오:

JDK 다운로드 프로세스 일러스트레이션 - JAVA 초등 소개 비디오 튜토리얼

위 내용은 Java NIO 시리즈 튜토리얼 1: Java NIO에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.