[영상후기][10분 테코톡] 🐰 멍토의 Blocking vs Non-Blocking, Sync vs Async

박철현·2023년 4월 10일
0

영상후기

목록 보기
84/160

movie

  • 다른 주체가 작업할 때 자신의 제어권이 있는지 없는지로 볼 수 있음

    • Blocking : 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것
    • Non-Blocking : 다른 주체의 작업에 관련없이 자신의 작업을 하는 것
  • 결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단가능

    • Synchronous(동기) : 작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함
    • Asynchronous(비동기) : 시작, 종료가 일치하지 않으며 끝나는 동시에 시작을 하지 않음
구분BlockingNon-Blocking
SyncBlocking / SyncNon-Blocking / Sync
AsyncBlocking / AsyncNon-Blocking / ASync
  • Blocking/Sync : 결과를 반환하면 바로 처리해야 함

    • Blocking의 관점 : 제어권
      • 다른 작업이 시작되는 동안 동작하지 않음
    • Sync의 관점 : 결과의 처리
      • 결과를 반환하면 바로 처리함
    • ex) Java에서 입력요청을 할 때 사용 Scanner : 입력할 동안 대기, 입력하면 바로 처리
  • Non-Blocking/Sync : 다른 작업이 있어도 제어권 가지고 일하기 + 결과 중간중간 물어보기

    • 결과 끝나면 바로 처리
    • ex) 게임에서 맵을 넘어갈 때(데이터를 가져올 때까지 유저에게 정보의 로드율이 얼마만큼인지 보여줘야 할 때)
  • Blocking/Async : 비동기인데 블락킹? 의미가 없으므로 보통 개발자의 실수(Non Blocking/Async 하려다가 실수) 혹은 기타 이유

  • Non-Blocking/ASync : 다른 작업이 시작되어도 자신이 하던 작업을 멈추지 않음, Async는 결과 바로 처리 x -> 자신의 일이 끝나고 난 뒤 처리

    • ex) 자바스크립트에서 API 요청을 하고 다른 작업을 하다가 콜백을 통해 처리
  • Blocking vs Non-Blocking : 제어의 관점

  • Sync vs Async : 순서와 결과(처리)의 관점

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글

관련 채용 정보