August 2, 2019 Comments(0) Uncategorized

    java nio 예제

    NIO와 NIO.2가 Java 플랫폼에 기여하는 주요 기여는 Java 응용 프로그램 개발의 핵심 영역 중 하나인 입력/출력 처리에서 성능을 향상시키는 것입니다. 모든 Java I/O 시나리오에 새 입력/출력 API가 필요하지도 않습니다. 그러나 Java NIO 및 NIO.2를 올바르게 사용하면 일반적인 I/O 작업에 필요한 시간을 줄일 수 있습니다. 이것이 NIO와 NIO.2의 초강대국이며, 이 문서에서는 이 예제를 실행하면 위의 서버 예제를 사용하여 시작된 서버에서 응답을 얻을 수 있습니다. 그것은 내가 자바 1.4에서 SSL과 NIO를 혼합하는 방법을 통해 꽤 빠른 실행입니다. 나는 오류 또는 누락이 나를 용서 (내가 그들을 해결할 수 있도록 알려) 그래서이 섹션을 조금 돌진했다. 비차단 IO 구성 요소를 만들어 선택기, 선택 가능한 채널 및 선택 키를 사용하는 방법을 살펴보겠습니다. 이 예제에서는 ServerSocketChannel 및 SocketChannel을 사용하여 클라이언트 연결을 수락하고 요청을 처리하고 클라이언트에 대한 응답을 보내는 멀티플렉싱 서버를 만듭니다. get() 을 넣은 직후에 호출하면 첫 번째 문자를 얻지 않습니다. 아래 예에서, 배치 후, 위치는 5로 설정된다. 버퍼에서 get()을 호출하면 빈 char 값이 부여됩니다. 이 문서는 자바 NIO (새로운 IO)에 대한 초보자 튜토리얼입니다.

    Java IO에 대한 대안을 제공하는 이 API를 한 단계 높이 살펴볼 것입니다. 자바 NIO API는 여기에서 볼 수 있습니다. 예제 코드는 이 항목의 핵심 추상화를 사용하는 것을 보여 줍니다. Java 새 입력 출력 라이브러리를 사용하면 입력 및 출력 작업을 효율적으로 수행할 수 있습니다. 스트림 개체를 사용하여 바이트단위로 데이터를 읽고 쓰는 Java I/O 클래스와 달리 Java NIO는 운영 체제 기능을 사용하는 채널을 사용하여 블록단위로 데이터를 읽고 씁니다. Java 1.4 이후 Java NIO API는 IO 작업을 처리하는 다른 방법을 제공했습니다. IO를 수행하기 위한 대체 방법이 필요한 이유는 무엇입니까? 시간이 지남에 따라 새로운 문제 세트가 도착하고 이러한 문제를 해결하기위한 새로운 접근 방식이 생각됩니다. IO 처리의 대체 수단에 대한 필요성을 이해하려면 두 가지 방법 간의 핵심 차이점을 이해해야 합니다. 이전 섹션에서 얻은 지식을 강화하기 위해 완전한 클라이언트-서버 예제를 구축할 것입니다.

    NIO의 비차단 I/O는 목록 1의 파일 시스템 수신기에서 보여 준 것처럼 이벤트 기반입니다. 즉, I/O 채널에 대해 선택기(또는 콜백 또는 리스너)가 정의된 다음 처리가 계속됩니다. 예를 들어 입력 줄이 도착할 때 선택기에서 이벤트가 발생하면 선택기는 “절전 모드 해제”되고 실행됩니다. 이 모든 것은 자바 프로그래머가 사용자 지정 네이티브 코드를 사용하지 않고 고속 I/O를 구현할 수 있도록 개발된 일반적인 Java I/O. NIO와 는 대조적인 단일 스레드 내에서 달성됩니다. NIO는 버퍼 채우기, 버퍼 소모 등과 같은 시간 소모적인 I/O 활동을 운영 체제로 다시 이동하므로 운영 속도가 크게 향상됩니다. 의견, 비판, 제안 및 가장 중요한 수정을 환영합니다. 이 예제는 Windows 및 Linux에서 Sun의 핫스팟 JVM 버전 1.4.2 및 1.5.0을 사용하여 Sun의 NIO 구현에서 개발 및 테스트되었습니다. 마일리지는 다를 수 있지만 funnies에 실행할 경우 알려주시기 바랍니다 나는이 페이지에 통합 할 수 있습니다.

    에코워커를 좀 더 자세히 살펴보겠습니다. 에코 작업자 구현은 두 번째 스레드로 구현됩니다. 이 예제에서는 단일 작업자 스레드만 사용할 수 있습니다. 즉, 이벤트를 직접 전달할 수 있습니다.