구동 방식의 차이
- IO는 Stream이라는 단방향 통로를 생성하여 외부 데이터와 통신합니다.
- NIO는 Channel이라는 양방향 통로를 생성하여 외부 데이터와 통신합니다.
결과적으로, NIO는 IO와 달리 읽기/쓰기를 하나의 통로로 해결할 수 있습니다.
java.io와의 차이점(detail)
- 양방향 Channel 방식을 사용하여 외부 데이터와 연동합니다. (하나의 통로를 사용)
- Buffer를 사용하여 속도를 향상시켰습니다.
- 비동기 방식을 지원합니다.
- Non-Blocking을 지원합니다.(I/O 수행 중, Thread가 Block당하지 않도록 합니다.)
Non-Blocking : 스레드가 입출력 작업을 할 때, 쓰레드를 멈추지 않고, 여러 입출력 작업을 동시에 할 수 있도록 하는 것