오늘은 오늘 배운 모의면접을 바탕으로 추가적으로 조금 더 정리가 필요하다고 생각한 부분인
동기와 비동기(블록과 논블록)에 대해서 공부해보고자 한다.
동기와 비동기는 우선 데이터의 요청을 어떻게 처리하냐에 따라 다르게 나타내집니다
● 동기(Synchronous)
동기는 우선 위의 사진에 왼쪽 부분처럼 해당하는 데이터 요청이 들어오면 그 자리에서 결과의 처리가 같이 진행되는 처리 방법을 동기적 처리라고 합니다.
예를 들자면 은행에서는 민원을 처리할 때 민원을 받고 처리를 끝낸 다음, 다음 민원을 받고 처리를 끝내는 식으로 해당 일이 끝나기 전에 다른 추가적인 업무를 하지 않는 것을 동기적 처리 방식이라고 합니다.
● 비동기(Asynchronous)
비동기는 이제 동기와 반대로 해당 데이터의 요청이 들어오면 그 데이터 요청을 수행하면서도 다른 데이터 요청들을 동시에 받는 데이터 처리 방법입니다.
예를 들자면 카페에서 주문을 받을 때 손님이 주문을 하기 위해 전부다 줄을 서고 있는 상황이라면 카페의 아르바이트가 손님의 요청을 받고 다음 손님의 요청을 받으면서 전의 손님의 음료와 다음 손님의 음료 들을 동시에 만들어서 여러 일을 동시에 처리하는 방식을 비동기적 처리 방식이라고 합니다.
동기와 비동기의 장단점
동기의 장점 : 설계를 간단하게 할 수 있고, 직관적으로 표현할 수 있다.
동기의 단점 : 데이터처리를 동시에 못하는 만큼 아무것도 못하고 데이터 처리가 끝나는 것을 기다려야한다.
비동기의 장점 : 여러가지 데이터 처리를 동시에 할 수 있어서 효율성이 높다
비동기의 단점 : 코드를 알아보기 어렵고, 난잡해 질 수 있고, 설계부분에서 어려움을 느낄 수 있다.
● 블록과 논블록
블록과 논블록은 동기와 비동기의 개념에 추가적인 부분이므로 추가적으로 학습하였다.
-블록
동기의 개념과 이어진 개념으로 함수가 진행 될 때 함수의 제어권을 주지않고 들고 있어 해당 함수가 끝날 때 까지 다른 함수를 불러오지 않게 막는다면 블로킹 되었다고 하고 이러한 개념을 블록이라고 한다.
-논블록
블록의 개념과 반대되는 개념이고 비동기의 데이터 처리방식을 이어받아 실행하고 있는 함수가 끝나지 않았음에도 return을 하여 호출 된 함수가 다른 일을 동시에 처리 하도록 막지않는다면 이는 논 블로킹 되었다고 하며, 이러한 개념을 논블록이라고 한다.
'코딩 > 게임서버공부' 카테고리의 다른 글
[CS] Select 모델과 IOCP 모델 (0) | 2024.06.04 |
---|---|
[CS]서브넷마스크, IP 주소의 종류, 라우터와 라우팅 (1) | 2024.05.30 |
[게임서버 3주차]IP,ARP,라우팅의 이해 (0) | 2024.05.28 |
물리계층 , 데이터 계층의 이해 (0) | 2024.05.23 |
[게임서버 공부] OSI 7계층과 LAN/WAN의 이해 (0) | 2024.05.21 |