[JAVA] io와 nio (개념)

WOOSUNG·2022년 6월 29일
0

JAVA

목록 보기
4/4

IO와 NIO의 차이

  • Java에는 프로그램와 외부 데이터(디스크, 네트워크, 메모리, 디렉토리 등)를 연결해서 조작할 수 있게 해주는 다양한 클래스가 존재합니다.
  • 이러한 클래스는 크게 구버전과 신버전으로 나눌 수 있습니다.
  • 버전에 따른 각각의 장단점이 존재하기에 둘 모두를 적절히 사용해야합니다.
  • 구버전java.io, 신버전java.nio패키지 입니다.
  • (old)io, (new)nio로 생각하면 됩니다.

구동 방식의 차이

  • IO는 Stream이라는 단방향 통로를 생성하여 외부 데이터와 통신합니다.
  • NIO는 Channel이라는 양방향 통로를 생성하여 외부 데이터와 통신합니다.
    결과적으로, NIO는 IO와 달리 읽기/쓰기를 하나의 통로로 해결할 수 있습니다.

NIO

  • New IO
  • java.io의 업그레이드 버전
  • IO -> (NIO -> NIO2)

java.io와의 차이점(detail)

  • 양방향 Channel 방식을 사용하여 외부 데이터와 연동합니다. (하나의 통로를 사용)
  • Buffer를 사용하여 속도를 향상시켰습니다.
  • 비동기 방식을 지원합니다.
  • Non-Blocking을 지원합니다.(I/O 수행 중, Thread가 Block당하지 않도록 합니다.)
Non-Blocking : 스레드가 입출력 작업을 할 때, 쓰레드를 멈추지 않고, 여러 입출력 작업을 동시에 할 수 있도록 하는 것

출처

절차대로 생각하고 객체로 코딩하기

0개의 댓글