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를 사용하여 단일 스레드에서 3개 채널을 처리하는 그림입니다.
Selector를 사용하려면 Selector에 채널을 등록한 다음 해당 select() 메서드를 호출해야 합니다. 이 메소드는 등록된 채널에 이벤트가 준비될 때까지 차단됩니다. 이 메서드가 반환되면 스레드는 이러한 이벤트를 처리할 수 있습니다. 이벤트의 예로는 새 연결 수신, 데이터 수신 등이 있습니다.
관련 기사:
Java NIO 시리즈 튜토리얼 2: Java NIO의 채널형 스트림
Java NIO 시리즈 튜토리얼 3: 버퍼의 기본 사용법
관련 비디오:
JDK 다운로드 프로세스 일러스트레이션 - JAVA 초등 소개 비디오 튜토리얼
위 내용은 Java NIO 시리즈 튜토리얼 1: Java NIO에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!