반응형
오류가 있으면 언제든지 지적해 주세요. 생각을 공유하는 것도 좋아합니다!
목표
- 동기와 비동기를 이해하고 차이점을 구분할 수 있다.
- 블로킹과 논블로킹을 이해하고 차이점을 구분할 수 있다.
동기와 비동기
프로세스에서 실행 순서를 관리하는 방법에 대한 개념입니다.
동기 프로그래밍
- A함수가 B함수를 호출할 때, B함수의 실행과 결과를 A함수가 확인하는 것입니다.
- B함수가 미완료 상태라면, B함수가 끝날 때까지 계속 확인합니다.
- 이때, A함수는 A함수의 다른 일을 실행할 수 있지만, B함수의 결과가 필요한 일은 실행할 수 없습니다.
- B함수가 완료되면, A함수의 나머지 일을 실행할 수 있습니다.
비동기 프로그래밍
- A함수가 B함수를 호출할 때, B함수의 실행과 결과를 A함수가 확인하지 않는 것입니다.
- A함수는 B함수의 실행, 결과와 상관없이 A함수를 실행합니다.
- 멀티스레드로 구현할 수 있습니다.
- 공유 자원을 사용하면 동시성 문제를 해결해야 합니다.
블로킹과 논블로킹
프로세스에서 실행의 제어권을 관리하는 방법에 대한 개념입니다.
블로킹
- A함수가 B함수를 호출할 때, 호출된 B함수가 종료될 때까지 실행의 제어권을 B함수가 가지고 있는 것입니다.
- A함수는 B함수가 종료되고 실행의 제어권을 돌려받은 후, 실행할 수 있습니다.
논블로킹
- A함수가 B함수를 호출할 때, 호출된 B함수가 종료되지 않았더라도 실행의 제어권을 A함수에게 돌려줄 수 있는 것입니다.
- A함수는 B함수가 종료되지 않았더라도 실행의 제어권을 가지고 있다면 실행할 수 있습니다.
반응형
'Computer science' 카테고리의 다른 글
[CS] 기술면접 질의응답 메모장 (1) | 2024.01.05 |
---|