I/O와 N/I/O는 네트워크 프로그래밍을 할 때 데이터를 입출력하는 방식의 차이이다.
I/O
N/I/O
I/O는 블로킹 방식으로 데이터 처리가 완료될 때까지 프로세스가 대기하는 방식이다.
N/I/O는 논블로킹 방식으로 데이터가 처리가 완료될 때까지 프로세스가 대기하지 않고 다른 작업을 수행할 수 있는 방식이다.
입출력 방식
스트림
채널
버퍼 방식
논버퍼(Non-Buffer)
버퍼(Buffer)
비동기 방식
지원 안 함
지원
블로킹 / 논블로킹 방식
블로킹 방식만 지원
블로킹 / 논블로킹 모두 지원
블로킹과 논블로킹arrow-up-right은 네트워크 프로그래밍에서 I/O 동작 방식을 구분하는 개념이다.
블로킹 I/O는 작업이 완료될 때까지 호출한 쓰레드를 대기 상태로 만든다.
간단한 방식으로 구현할 수 있지만, 대규모의 작업을 처리하는 경우 쓰레드 자원을 많이 소모하여 성능에 영향을 미칠 수 있다.
논블로킹 I/O는 작업이 완료되지 않아도 쓰레드를 대기 상태로 만들지 않는다.
쓰레드는 작업의 진행 상태를 계속 모니터링하고, 작업이 완료되면 알림을 받는다.
병렬 처리에 적합하고, 대규모의 작업을 처리할 때 쓰레드 자원을 효율적으로 관리할 수 있어 성능 향상에 기여할 수 있다.
참고 블로그arrow-up-right
Last updated 3 months ago