비동기와 논블록은 동일한 의미로 생각하고 넘어가도 되나요?
어떤 책에서 보면 비동기와 논블록은 다른 것이라고 설명이 되어 있었는데, 엄밀하게 알고 넘어가야하는 개념은 아닌가요?
답변 2
5
보통 사용할 때 [블로킹+동기] vs [논블로킹+비동기]로
짝지어서 사용하는 경우가 많지만
그렇다고 블로킹 <-> 동기가 동일한 의미는 아닙니다.
C# 강의에서는 그 정도로 깊이 들어갈 필요가 없어서
따로 언급을 안 하지만 C++ 강의에서는 해당 내용도 정밀하게 다룹니다.
블로킹 vs 논블로킹은 말 그대로 함수가 '바로' 호출이 완료되는지 여부를 나타내고
동기 vs 비동기는 우리가 요청한 일이 '당장' 실행되는지, '지연되어' 호출될 수 있는지를 의미합니다.
(즉 함수를 호출할 때 입출력이 동시에 실행되느냐? 가 동기/비동기를 구분짓는 핵심입니다)
어떤 사람한테 질문을 해서 답을 듣는데,
전화를 걸어서 답장을 듣는다면 바로 답장을 실시간으로 들을테고
이메일로 보내면 1주일 후에 답장이 올 수도 있겠죠.
따라서 전화 = 동기, 이메일 = 비동기에 비유할 수 있습니다.
반면 블로킹/논블로킹은 말 그대로 함수가 바로 빠져나오는지를 의미합니다.
논블로킹의 경우 무조건 빠져나오고 성공/실패 여부를 판단하는 식으로 구현되고
블로킹은 끝장을 볼때까지 함수가 대기를 타서,
함수가 반환되면 입출력 결과를 바로 확인을 수가 있습니다.
TLS 질문드립니다.
0
53
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
56
2
Unity Span
0
82
2
XML, Dll 차이점
0
110
2
Session 질문입니다
0
83
1
Write Read 커서 키워드
0
78
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
73
2
네트워크 Send 전담 스레드 배치
0
100
2
UnhandledException 으로 서버 터지는 경우
0
88
2
컨텐츠 단, 엔진 단
0
106
1
질문 있습니다
0
78
2
C# 게임서버 3D MMORPG
0
152
2
유니티6 버전
0
100
2
receive하는 부분과 send하는 부분의 차이
0
135
2
커서의 위치의 중요성
0
105
2
C++ 전혀 모르는데 C# 서버
0
170
2
강의에 질문이 있습니다
0
88
2
멀티스레드 이해도 질문
0
96
1
500 vs 500
0
131
3
OnAcceptHandler 액션 함수
0
64
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
193
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
83
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
111
2





