CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): Sequoia (매지동자)
날 짜 (Date): 2005년 11월  8일 화요일 오후 03시 12분 55초
제 목(Title): async vs non-blocking



async는 요청과 응답이 동기화되지 않은, 그러니까 io요청을 요청하는 때와

그 요청에 대한 응답을 받는 때가 관계가 없는 io입니다.

non-blocking은 동기화는 되지만 블러킹이 되지 않는, 즉 '즉시시전 가능'-_-;

한 io만 처리하고 바로 그 결과를 리턴해버리는 io입니다.



예컨대 100바이트를 네트워크로 보내는 io를 요청했을 경우,

블러킹 io는 100바이트를 다 버퍼에 쓸때까지 기다렸다가 리턴하고, (버퍼가

모자랄 경우 네트워크에 버퍼 내용이 흘러나가서 버퍼가 빌때까지 기다림)

논블러킹 io는 버퍼에 남은 공간에다가 쓸수있는데까지 쓰고 몇바이트 썼다는

결과값을 리턴하고,

비동기 io는 바로 리턴한 다음 100바이트 다 쓰고 나면 '어떤' 메시지 큐에다

가 그 요청을 완료했다는 메시지를 enqueue하죠. (윈도우에서는 보통 iocp 가

메시지 큐.) 그 요청의 후속조치는 이 메시지를 받아서 처리해야 하고요.



@ 원질문은 어나니에... -_-

* 나는 아직도 배가 고프다. *
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.