blocking, non-blocking & sync, async

gh90·2022년 5월 16일
0

동기와 비동기에 대해 자료를 찾아보다 헷갈리는 개념이 있어 저의 방법 대로 정리해봅니다. 제 생각이므로 당연히 틀릴 수 있습니다.

의미

Synchronous, Asynchronous

Synchronous

-> 함수가 A,B 순서로 호출 됐을 때, 논리적인 순서로 A가 완료 된 후 B가 실행 되면 Synchronous

Asynchronous

-> 함수가 A,B 순서로 호출 됐을 때, A 호출 후 완료에 상관없이 B를 호출 할수 있으면 Asynchronous

Blocking, Non-Blocking

Blocking

  • 함수가 A 호출 됐을 때, A가 완료 될 때까지 호출한 쪽에서 다른 것을 할수 없을 때

Non-Blocking

  • 함수가 A 호출 됐을 때, A의 완료 여부와 상관 없이 다른것 을 할수 있을 때

method a,b 의 수행 시간이 각각 2초 1초 라고 가정

Synchronous & Blocking

  • 자바의 경우 일반적으로 Synchronous & Blocking 입니다.
  • 프로그램 완료 시간 3

Synchronous & Non-Blocking

  • 일반적으로 다른 프로세스에 요청을 하고 그 결과가 완료된것을 요청한쪽에서 계속 확인하는 구조입니다.
  • 프로그램 완료 시간 3+@

Asynchronous & Blocking

  • Blocking 되어버린다면 Synchronous 한 결과만 얻을수 있기 때문에 의미가 없지 않나 생각 됩니다.
  • 프로그램 완료 시간 3

Asynchronous & Non-Blocking

  • 다른 프로세스에 요청을하고 호출한쪽에서 자기 할것을 합니다.
  • 프로그램 완료 시간 2

[참조]
https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/
https://velog.io/@codemcd/Sync-VS-Async-Blocking-VS-Non-Blocking-sak6d01fhx

profile
개발자~

0개의 댓글