Blocking, NonBlocking
- 블록킹, 넌블록킹의 분류 기준은 대기(waiting, sleeping) 여부이다.
- 블록킹(blocking)
- 성공 또는 실패할 때 까지 대기 하므로 항상 성공 또는 실패의 두가지 리턴 상태가 존재한다.
- 넌 블록킹(Non
- 대기가 존재하지 않으므로 작업 요청 후 성공이든 실패든 무조건 즉시 처리하고 리턴한다.
- 반환 패턴은 성공, 실패, 부분성공으로 볼 수 있으며, 기능에 따라 부분성공은 지원하지 않을 수 있다.
- ex)
- send 함수 호출 -> 소켓의 송신 버퍼에 빈공간이 없는 경우
- Blocking
- Non Blocking
- 즉시 실패
- 송신 요청된 버퍼 크기 > 버퍼 공간 인 경우
Synchronous, Asynchronus
- 동기, 비동기의 분류 기준은 순서(order) 이다.
- 동기(Synchronous)
- 순서대로 처리하는 것이다.
- in-order로 처리되는 형태를 동기 모델이라고 부른다.
- 비동기(Asynchronous)
- 처리의 순서가 보장되지 않는 것이다.
- out of order로 처리되는 형태를 비동기 모델이라고 부른다.