Blocking, NonBlocking

  • 블록킹, 넌블록킹의 분류 기준은 대기(waiting, sleeping) 여부이다.
  • 블록킹(blocking)
    • 성공 또는 실패할 때 까지 대기 하므로 항상 성공 또는 실패의 두가지 리턴 상태가 존재한다.
  • 넌 블록킹(Non
    • 대기가 존재하지 않으므로 작업 요청 성공이든 실패든 무조건 즉시 처리하고 리턴한다.
    • 반환 패턴은 성공, 실패, 부분성공으로 있으며, 기능에 따라 부분성공은 지원하지 않을 있다.
  • ex)
    • send 함수 호출 -> 소켓의 송신 버퍼에 빈공간이 없는 경우
      • Blocking
        • 버퍼에 빈공간이 확보될 때까지 대기
      • Non Blocking
        • 즉시 실패
        • 송신 요청된 버퍼 크기 > 버퍼 공간 인 경우
          • 부분 성공으로 리턴

Synchronous, Asynchronus

  • 동기, 비동기의 분류 기준은 순서(order) 이다.
  • 동기(Synchronous)
    • 순서대로 처리하는 것이다.
    • in-order 처리되는 형태를 동기 모델이라고 부른다.
  • 비동기(Asynchronous)
    • 처리의 순서가 보장되지 않는 것이다.
    • out of order 처리되는 형태를 비동기 모델이라고 부른다.

+ Recent posts