Blocking/Non-blocking & Synchronous/Asynchronous

yshjft·2022년 2월 15일
0

운영체제

목록 보기
1/8

✔︎ Blocking & Non-blocking

Block과 non-block의 차이는 호출된 함수가 호출한 함수에게 제어권을 건네주는 유무의 차이

Blocking VS Non-Blocking

함수 A, 함수 B → 함수 A안에서 함수 B가 호출 된다

  • 함수A: 호출한 함수
  • 함수B: 호출된 함수

Blocking

함수 B는 내 할 일을 다 마칠 때까지 제어권을 가지고 있는다. A는 B가 다 마치 때까지 기다려야 한다.

Non-Blocking

함수 B는 할 일을 마치지 않았어도 A에게 제어권을 바로 넘겨준다. A는 B를 기다리면서도 다른 일을 진행할 수 있다.

✔︎ Synchronous & Asynchronous

호출한 함수가 결과에 신경을 쓰는지 호출된 함수가 결과에 신경을 쓰는지

Synchronous VS Asynchronous

함수 A, 함수 B → 함수 A안에서 함수 B가 호출 된다

  • 함수A: 호출한 함수
  • 함수B: 호출된 함수

Synchronous

  • 메소드를 실행시킴과 동시에 반환 값이 기대되는 경우
  • 함수 A는 함수 B가 일을 하는 중에 기다리면서, 현재 상태가 어떤지 계속 체크

Asynchronous

  • 메소드를 실행시킴과 동시에 반환 값이 기대되지 않는 경우
  • 함수 B의 수행 상태를 B 혼자 직접 신경쓰면서 처리(Callback)
  • 비동기는 호출시 callback을 전달하여 작업의 완료 여부를 호출한 함수에게 답하게 된다(Callback이 오긴 전까지 호출한 함수는 신경쓰지 않고 다른 일 한다)

✔︎ 참고

profile
꾸준히 나아가자 🐢

0개의 댓글