동기와 비동기, 블록과 논블록(Synchronous, Block)

서문🌙·2023년 4월 19일
0

동기와 비동기

동기/비동기는 기술적으로 구분되지 않으며, 추상적인 구분(행위) 에 대한 이야기임.

  • 동기(Synchronous) : 현재 작업의 응답이 발생한 뒤에 다음 작업에 대한 요청이 이루어지며,
    이 과정의 타이밍이 일치하는 것 (순차적)

    • (동기화 (Synchronization, 서로 다른 상태를 같은 것으로 만드는 것) 과는 약간 다름)
  • 비동기(Asynchronous) : 현재 작업의 요청에 대한 응답이 마무리 되지 않아도 다음 작업에 대한
    요청이 이루어질 수 있음. (타이밍이 일치하지 않음, 비 순차적)
    (+ Callback)

블록과 논블록

블록/논블록은 기술적으로 명확히 구분된다.

  • 블록(Block) : 현재 작업에 대한 처리가 모두 마무리 된 후에 다른 함수가 실행됨.
  • 논블럭(Non-Block) : 현재 작업중인 것이 마무리 지어지지 않았더라도 바로 다른 함수가 일을
    수행할 수 있음.
종류설명
블럭(Block)호출된 작업이 마무리 될 때 까지 제어권을 가지고서 return 하지 않는 것
논블럭(Non-Block)호출된 작업이 끝까지 마무리되지 않았더라도 제어권을 넘겨주어 다른 작업의 시작이 가능
동기(Synchronous)호출된 작업이 종료되고, A작업의 종료와 B작업의 시작을 모두 신경 씀
(요청과 결과가 동시에 일어남)
비동기(Asynchronous)호출된 작업이 수행의 시작과 완료까지의 과정을 오로지 혼자만 신경쓰고 처리함
(요청과 결과가 동시에 일어나지 않음)


참고 :
https://evan-moon.github.io/2019/09/19/sync-async-blocking-non-blocking/

https://dkswnkk.tistory.com/488

profile
예외(exception)는 있다

0개의 댓글