Java Part3 하 2.4 Non blocking 개념
- JVM은 사용자 모드 애플리케이션 프로세스로, 입출력(I/O)의 주체이며 커널 모드를 통해 실제 I/O를 수행합니다. 💻
- 전통적인 블로킹 I/O는 I/O 작업이 완료될 때까지 프로그램 흐름을 멈추게 하여, 특히 GUI 애플리케이션에서 사용자 경험을 저해합니다. ⏳
- 블로킹 I/O의 문제를 해결하기 위해 멀티스레딩을 사용할 수 있으나, 이는 스레드 스위칭 오버헤드를 발생시켜 성능 저하의 원인이 될 수 있습니다. 🧵
- 논블로킹 I/O는 운영 체제(OS)의 지원을 받아 I/O 요청 시 즉시 반환되어 애플리케이션 흐름이 중단 없이 계속되도록 합니다. 🚀
- 논블로킹 I/O의 핵심 이점은 단일 스레드로 여러 I/O 작업을 효율적으로 처리하여 스레드 오버헤드를 줄이고 애플리케이션 성능을 크게 향상시킨다는 점입니다. ✨
- 실제 하드웨어 I/O는 OS가 담당하며, 애플리케이션은 OS에 I/O 작업을 요청하는 역할을 합니다. ⚙️
- 논블로킹 I/O는 I/O 완료 시점을 예측하기 어렵고, 비동기적인 성공/실패 처리가 필요하여 코드 로직이 복잡해질 수 있다는 단점이 있습니다. 🧩
- 고성능 서버 개발, 특히 네트워크 I/O 처리에서는 논블로킹 개념의 이해와 적용이 필수적입니다. 🌐
데브허브 | DEVHUB | Java Part3 하 2.4 Non blocking 개념