동기 비동기 / Blocking, NonBlocking

donotinto·2024년 6월 7일

A 함수 내부에서 B 함수를 호출

동기(Sync)

  • A 함수가 B 함수의 작업 완료를 계속 확인하여, 결과를 받아 진행한다.

비동기(Async)

  • A 함수가 B 함수의 작업 완료를 신경쓰지 않는다.

Blocking

  • B 함수에게 넘어간 제어권을 작업이 완료될 때까지 돌려주지 않는다.

Non-Blocking

  • B 함수에게 넘어간 제어권을 바로 A에게 바로 돌려준다.

예시

Blocking + Sync

  • readline()

NonBlocking + Sync

  • 맵 이동 로딩 시 progress bar
  • 맵 이동이 완료되었는지 계속 확인하면서 진행도를 표기
  • 맵 이동이 완료되었다 알려주면 다음 맵으로 이동

Blocking + Async

  • 의도하여 사용할 일이 사실 없음

NonBlocking + Async

  • API 요청 후 콜백 처리

0개의 댓글