블록/논블록, 동기/비동기

김태희·2020년 12월 25일
0

블록 / 논블록


함수 호출에서의 이야기이다.

기술적으로 명확히 구분된다.

블록

함수A를 호출했을 때, 함수A의 수행이 모두 끝날 때 까지 기다린다(블록). 함수A의 수행이 모두 끝나고 리턴되면, 함수A를 호출한 부분의 다음 부분부터 이어서 실행한다.

논블록

함수A를 호출했을 때, 함수A의 실행을 요청하고 바로 리턴된다(논블록).


동기 / 비동기


행위에 대한 이야기이다.

기술적으로 구분되지 않는다. 추상적인 구분이다.

작업A와 작업B가 있다고 하자.

동기

작업A가 먼저 모두 처리되고 나서 작업 B가 처리되기 시작하면(하나씩 순차적으로 처리되면) 동기이다.

작업A가 작업B를 관찰하는 작업이라면, 작업A와 작업B가 동시에 처리되더라도 동기이다. (여기서 작업A와 작업B를 서로 바꾸어 생각해도 똑같다.)

비동기

작업A와 작업B가 동시에 처리되면 비동기이다.

작업A와 작업B는 인과관계가 있어야 한다.

작업A와 작업B가 인과관계가 없으면, 동시에 처리되더라도 비동기라고 볼 수 없다.


참고
https://hamait.tistory.com/930

profile
Web Back-End (Spring, JPA, AWS)

0개의 댓글