Async/Sync vs Block/Non-Block

2021-04-08

옛날에 어느 N사 면접에서 나온 질문인데 대답이 명확하게 나오지 않아서 나중에 알아봐야지 하다가 말았던 것.

결론은 결국 영어 공부였다. Async/Sync - Block/Non-Block 의 의미를 이해하면 될 문제였던 것.


Block/Non-Block

Block/Non-Block 은 프로시저의 실행이 멈추는가를 표현하는 용어다.

실행 중인 프로시저A가 다른 프로시저B를 호출 할 때, 호출된 프로시저B가 자기가 끝날 때까지 A 를 멈추면(Block) Block이고 안 멈추면(Non-Block) Non-Block이다.

실제 구현된 프로그램 함수로 생각한다면 호출된 함수가 모든 작업이 끝난 다음에 return 하냐 작업이 끝나기 전에 return 하냐 하는 것을 생각하면 되겠다.

Async/Sync

Async/Sync 는 여러 프로시저가 서로 흐름을 맞추느냐 하는 문제다.

하나가 끝나는 데 맞추어(Sync) 다른 게 실행된다면 Sync 이고 그게 아니면 Async이다.

함수 두 개를 연이어 실행하는데 하나가 끝나기 전에 다음 함수가 실행된다면 두 함수는 비동기적으로 실행되는 것이다.


참조

2021년 전체 회고 캐릭터 카드에 스타일 입힘