-
동기와 비동기cs (컴퓨터 사이언스) 2023. 6. 22. 01:46
동기(Synchronus)
- 현재 작업의 응답이 끝남과 동시에 다음 작업이 요청
- 함수를 호출하는 곳에서 호출되는 함수가 결과를 반환할 때까지 대기
- 작업 완료 여부를 계속해서 확인
비동기(Asynchronous)
- 현재 작업의 응답이 끝나지 않은 상태에서 다음 작업이 요청
- 함수를 호출하는 곳에서 결과를 기다리지 않고, 다른 함수(callback)에서 결과를 처리
- 작업 완료 여부를 확인하지 않음
동기와 비동기의 차이는 호출되는 함수의 작업 완료를 신경쓰는지의 여부차이이다.
작업을 수행하는 2개이상의 대상에 대해 다음 작업이 요청되는 시간과 관련이 있다.
블로킹(Blocking)
- 제어권이 호출된 함수로 넘어감
- 제어권을 가지게된 호출된 함수가 작업을 모두 끝낸 후 값과 제어권을 원래함수로 리턴
- 기존 함수는 제어권이 없는 상태라 아무작업도 안함
논블로킹(Non-Blocking)
- 함수가 호출되어도 제어권은 그대로 있음(실제로는 제어권을 넘겨주지만 바로 돌려받음)
- 기존 함수가 제어권을 가지고 있기에 다른 작업을 수행 가능
블로킹과 논블로킹의 차이는 제어권을 어떻게 처리하는지에 대한 차이이다.
2개 이상의 작업 대상에 대해 제어권을 가져와 작업흐름을 막는지 안막는지와 관련이 있다.
출처: https://cotak.tistory.com/136#%EB%B-%--%EB%-F%--%EA%B-%B-%--%-B%--%EB%B-%--%EB%A-%-C%ED%--%B-
'cs (컴퓨터 사이언스)' 카테고리의 다른 글
프로세스와 스레드 (1) 2023.11.06 의존성 주입이란 (0) 2023.08.29 브라우저의 작동방식은? (0) 2023.08.24 http 메소드 (0) 2023.08.23 RDMNS와 NoSQL (0) 2023.08.16