[CS] Blocking, Non-Blocking, Synchronouse, Asynchronouse

Blocking

Non-Blocking

✔ 호출되는 함수가 바로 리턴되는지 아닌지가 동기/비동기와의 차이점

Synchronouse (동기)

Asynchronouse (비동기)

✔ 호출되는 함수가 작업이 완료되었느냐 확인

Non-Blocking이면서 Sync 인 작업은?

호출 된 함수가 바로 리턴하지만, Sync이기 때문에 작업 완료 여부를 계속 확인하려 함

Blocking하지 않으므로 호출 함수는 바로 리턴하고, 계속 확인 (Polling)

제어권 = 호출한 함수

Blocking일때 Async

리턴하지 않고 대기

호출한 대상은 호출된 함수가 작업완료가 종료되었는 지 관심이 없지만 일단 대기

호출된 대상은 로직 실행

매우 비효율적인 특징을 가짐

Non-Blocking Async를 많이 사용함