I/O, N/I/O 의 차이를 설명해 주세요.

  • I/ON/I/O는 네트워크 프로그래밍을 할 때 데이터를 입출력하는 방식의 차이이다.

  • I/O블로킹 방식으로 데이터 처리가 완료될 때까지 프로세스가 대기하는 방식이다.

  • N/I/O논블로킹 방식으로 데이터가 처리가 완료될 때까지 프로세스가 대기하지 않고 다른 작업을 수행할 수 있는 방식이다.

I / O
N / I / O

입출력 방식

스트림

채널

버퍼 방식

논버퍼(Non-Buffer)

버퍼(Buffer)

비동기 방식

지원 안 함

지원

블로킹 / 논블로킹 방식

블로킹 방식만 지원

블로킹 / 논블로킹 모두 지원

꼬리 질문 - 블로킹/논블로킹에 대해 설명해 주세요.

  • 블로킹과 논블로킹은 네트워크 프로그래밍에서 I/O 동작 방식을 구분하는 개념이다.

  • 블로킹 I/O는 작업이 완료될 때까지 호출한 쓰레드를 대기 상태로 만든다.

    • 간단한 방식으로 구현할 수 있지만, 대규모의 작업을 처리하는 경우 쓰레드 자원을 많이 소모하여 성능에 영향을 미칠 수 있다.

  • 논블로킹 I/O는 작업이 완료되지 않아도 쓰레드를 대기 상태로 만들지 않는다.

    • 쓰레드는 작업의 진행 상태를 계속 모니터링하고, 작업이 완료되면 알림을 받는다.

    • 병렬 처리에 적합하고, 대규모의 작업을 처리할 때 쓰레드 자원을 효율적으로 관리할 수 있어 성능 향상에 기여할 수 있다.

참고

Last updated