먼저 생활 비유
카페의 진동벨
직원이 손님 한 명 옆에서 음료가 나올 때까지 기다리지 않고, 완성된 주문의 벨만 확인해 처리합니다.
2.8 · 프로세스와 동시성
연결 1만 개마다 스레드 하나를 두지 않고도 요청을 처리할 수 있을까요?
대부분의 연결은 계산보다 네트워크를 기다리는 시간이 길기 때문에 준비된 연결만 골라 처리할 수 있습니다.
먼저 생활 비유
직원이 손님 한 명 옆에서 음료가 나올 때까지 기다리지 않고, 완성된 주문의 벨만 확인해 처리합니다.
컴퓨터 예제로 바꾸기
ready = epoll_wait(...);
for (fd of ready) handle(fd);운영 체제가 준비된 소켓 목록만 돌려주므로 이벤트 루프는 빈 소켓을 하나씩 검사하지 않습니다.
지금 일어나는 변화
대부분은 네트워크 데이터를 기다리는 중입니다.
이 그림에서 기억할 한 문장
높은 동시성은 많은 일을 동시에 계산하는 것보다 많은 기다림을 적은 실행 흐름으로 관리하는 기술입니다.
현재 상태
30초 확인 문제
이벤트 루프에서 한 핸들러가 오래 계산하면?
처음 보는 용어 두 개
이 절을 다 읽었다면
높은 동시성은 많은 일을 동시에 계산하는 것보다 많은 기다림을 적은 실행 흐름으로 관리하는 기술입니다.