- 이벤트가 발생하는 대로 처리하는 이벤트 기반의 프밍 아주 좋아보임
- 그러나!
- CPU 중심 연산처럼 블로킹이 발생할 수 있는 시스템콜을 사용해야하는 이벤트 등장 순간 문제 발생함
-
- 코드 구조가 한 덩이가 아닌 각기 특정 이벤트를 처리하기 위한 콜백이 여기저기 흩어진 구조도 문제 악화
- 가독성 저하
- 유지보수성 저하
- 문제 해결법
- 스레드나 프로세스쓰면되긴함
- 어떤 스레드에서 블로킹이 발생해도 다른 스레드가 병렬적으로 실행되어 서버가 계속 동작하기 때문
- 스레드에 CPU 코어를 배정하는 일은 운영체제가 알아서 하니 문제없음
- 그러나
- 이벤트 기반 장식 사용한다면 스레드가(이벤트 반복문 수행하며 이벤트 처리하는) 주 스레드 뿐임
- 그래서, 블로킹 발생하면 전체 시스템이 멈추니 블로킹 연산이 있으면 안됨.
- 결국, 비동기 프밍 기법은 시스템이 반응성을 잃지 않도록 블로킹 연산 일으키는 연산을 배제해야함