OK, NOK 추가
Java는 JVM 위에서 작동하며 메모리에서 JVM 메모리로 데이터를 복사하는 프로세스가 있으므로 OS 레벨 시스템 호출을 직접 사용하는 것보다 느립니다.
NIO는 Java 4에서 릴리스되었으며 NIO 2.0은 Java 7의 클래스 디자인 및 비동기 채널과 같은 업데이트와 함께 NIO에 의해 서브패키징됩니다.
IO와 NOK의 차이점
스트림 대 채널
좋아요 입력 및 출력에 대한 각 스트림을 생성하고 한 번에 1바이트씩 처리하는 스트림 기반
절대 채널 기반의 채널로 양방향 I/O 가능
비 버퍼 대 버퍼
좋아요 1byte 쓰기와 읽기 조합으로 데이터 송수신, 보조 스트림인 BufferedStream을 연결하여 사용하기도 합니다.
절대 버퍼로 여러 바이트 쓰기 및 읽기커널 시스템 메모리에 액세스하는 채널별 JVM 메모리와 같은 라인 레벨
차단 대 비차단
좋아요작동 중 해당 IO 스레드 블록잠금 상태에서는 다른 작업을 수행할 수 없으며 인터럽트가 발생하지 않으며 작업 중 스트림이 닫히면 잠금이 해제됩니다.
절대차단 및 비 차단 기능을 모두 가지고 있습니다.스레드를 중단하여 NOK 차단을 우회할 수 있습니다.NIO Non-Blocking은 I/O가 준비된 채널만 선택하여 처리하므로 작업 스레드가 차단되지 않습니다.기성 채널만 선택하는 객체는 셀렉터, 멀티플렉서
유권자스레드는 여러 입력 채널을 관리합니다.
IO, NOK의 올바른 사용
NIO는 비차단 또는 비동기 방식으로 여러 연결 요청을 처리할 수 있으므로 콜백을 사용하여 스레드를 효과적으로 재사용할 수 있습니다. 따라서 다수의 클라이언트와 통신이 필요하고 가벼운 입/출력 처리가 필요한 경우 NIO를 사용하는 것이 적절하다. 무거운 I/O 처리는 콜백이 스레드에 누적되기 때문에 단점이 될 수 있습니다.
순차적인 I/O 작업이 필요할 때나 대량의 데이터 처리 작업이 필요할 때 즉시 처리하는 IO를 사용하는 것이 적절하다. NIO는 버퍼 할당을 위한 추가 선행 작업으로 인해 IO보다 성능이 나쁠 수 있습니다.
참조
Java IO와 NIO의 차이점과 선택
안녕하세요 알통몬입니다. 좋아요와 댓글은 포스팅에 큰 힘이 됩니다! 포스팅 내용이 방문하시는 분들께 도움이 되셨으면 좋겠고 더 깔끔하고 좋은 포스팅 만들겠습니다 ^^ 니오: 이제
알통몬.tistory.com