inflearn logo
강의

Course

Instructor

[C# and Unity MMORPG Game Development Series] Part 4: Game Server

Listener

비동기와 논블록은 동일한 의미로 생각하고 넘어가도 되나요?

Resolved

543

rootgamer

52 asked

3

어떤 책에서 보면 비동기와 논블록은 다른 것이라고 설명이 되어 있었는데, 엄밀하게 알고 넘어가야하는 개념은 아닌가요? 

C# network unity

Answer 2

5

Rookiss

보통 사용할 때 [블로킹+동기]  vs [논블로킹+비동기]로
짝지어서 사용하는 경우가 많지만
그렇다고 블로킹 <-> 동기가 동일한 의미는 아닙니다.
C# 강의에서는 그 정도로 깊이 들어갈 필요가 없어서
따로 언급을 안 하지만 C++ 강의에서는 해당 내용도 정밀하게 다룹니다.

블로킹 vs 논블로킹은 말 그대로 함수가 '바로' 호출이 완료되는지 여부를 나타내고
동기 vs 비동기는 우리가 요청한 일이 '당장' 실행되는지, '지연되어' 호출될 수 있는지를 의미합니다.
(즉 함수를 호출할 때 입출력이 동시에 실행되느냐? 가 동기/비동기를 구분짓는 핵심입니다)

어떤 사람한테 질문을 해서 답을 듣는데,
전화를 걸어서 답장을 듣는다면 바로 답장을 실시간으로 들을테고
이메일로 보내면 1주일 후에 답장이 올 수도 있겠죠.
따라서 전화 = 동기, 이메일 = 비동기에 비유할 수 있습니다.

반면 블로킹/논블로킹은 말 그대로 함수가 바로 빠져나오는지를 의미합니다.
논블로킹의 경우 무조건 빠져나오고 성공/실패 여부를 판단하는 식으로 구현되고
블로킹은 끝장을 볼때까지 함수가 대기를 타서,
함수가 반환되면 입출력 결과를 바로 확인을 수가 있습니다.

0

rootgamer

답변정말 감사드립니다 ㅎㅎ 정말 많은 도움이 되네요 

TLS 질문드립니다.

0

56

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

57

2

Unity Span

0

82

2

XML, Dll 차이점

0

111

2

Session 질문입니다

0

84

1

Write Read 커서 키워드

0

79

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

75

2

네트워크 Send 전담 스레드 배치

0

100

2

UnhandledException 으로 서버 터지는 경우

0

88

2

컨텐츠 단, 엔진 단

0

108

1

질문 있습니다

0

78

2

C# 게임서버 3D MMORPG

0

153

2

유니티6 버전

0

100

2

receive하는 부분과 send하는 부분의 차이

0

135

2

커서의 위치의 중요성

0

105

2

C++ 전혀 모르는데 C# 서버

0

171

2

강의에 질문이 있습니다

0

89

2

멀티스레드 이해도 질문

0

98

1

500 vs 500

0

131

3

OnAcceptHandler 액션 함수

0

64

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

194

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

84

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

107

1

스핀락 질문.

0

111

2