Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

동기와 비동기, 블로킹과 넌블로킹의 차이는 무엇인가요? #157

Open
sustainable-git opened this issue Jun 12, 2022 · 2 comments

Comments

@sustainable-git
Copy link
Member

No description provided.

@tmfrlrkvlek
Copy link
Collaborator

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

@inuinseoul
Copy link
Collaborator

blocking은 제어권의 여부에 따라 분류됩니다. blocking은 제어권을 뺏어 일시적으로 작업이 멈추도록하고, non-blocking은 그렇지 않습니다. sync는 작업의 처리 위치에 따라 분류됩니다. 직접 처리할 경우 sync이며 다른 곳에서 처리할 경우 async입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants