Open sustainable-git opened 2 years ago
Blocking과 Non-blocking은 호출된 함수가 호출한 함수에게 제어권을 바로 주느냐 아니냐의 차이입니다.
Blocking은 A 함수가 B 함수를 호출할 때, B함수가 자신의 작업이 종료되기 전까지 A함수에게 제어권을 돌려주지 않는 것을 의미합니다.
Non-blocking은 B 함수가 제어권을 바로 A에게 넘겨주면서 A 함수가 다른 일을 할 수 있도록 하는 것을 의미합니다.
Sync와 Async는 호출된 함수의 종료를 호출한 함수가 처리하느냐, 호출된 함수가 처리하느냐의 차이입니다.
Sync는 A 함수가 B 함수를 호출할 때, B 함수의 결과를 A 함수가 처리하는 것을 의미합니다.
Async는 B 함수의 결과를 콜백으로 B 함수가 직접 처리하는 것을 의미합니다.
참고)
iOS 프로그래밍에서는 aysnc는 non-blocking으로만 다루고, sync는 blocking으로만 다루고 있습니다.
참고) 인프런 async와 blocking
blocking은 제어권의 여부에 따라 분류됩니다. blocking은 제어권을 뺏어 일시적으로 작업이 멈추도록하고, non-blocking은 그렇지 않습니다. sync는 작업의 처리 위치에 따라 분류됩니다. 직접 처리할 경우 sync이며 다른 곳에서 처리할 경우 async입니다.
Blocking vs Non-blocking
Blocking과 Non-blocking은 호출된 함수가 호출한 함수에게 제어권을 바로 주느냐 아니냐의 차이입니다.
Blocking은 A 함수가 B 함수를 호출할 때, B함수가 자신의 작업이 종료되기 전까지 A함수에게 제어권을 돌려주지 않는 것을 의미합니다.
Non-blocking은 B 함수가 제어권을 바로 A에게 넘겨주면서 A 함수가 다른 일을 할 수 있도록 하는 것을 의미합니다.
Sync vs Async
Sync와 Async는 호출된 함수의 종료를 호출한 함수가 처리하느냐, 호출된 함수가 처리하느냐의 차이입니다.
Sync는 A 함수가 B 함수를 호출할 때, B 함수의 결과를 A 함수가 처리하는 것을 의미합니다.
Async는 B 함수의 결과를 콜백으로 B 함수가 직접 처리하는 것을 의미합니다.
참고)
iOS
iOS 프로그래밍에서는 aysnc는 non-blocking으로만 다루고, sync는 blocking으로만 다루고 있습니다.
참고) 인프런 async와 blocking