강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

keti-maas님의 프로필 이미지
keti-maas

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

비동기 함수에 대한 질문

작성

·

206

0

안녕하세요. Rookiss님 아래 질문 보다가 저도 궁금한점이 있어 댓글 남깁니다.
ReceiveAsync는 예약이 걸렸을때 별도 Thread가 사용되는게 아니라 Windows 운영체제에서
관리해주는것이라 답변해주신거 봤습니다.

첫번째 질문은 비동기 함수들은 전부 ReceiveAsync 처럼 별도 Thread가 아닌 Windows 운영체제에서 관리하는것으로 이해해도 될까요?

두번째로 C++ 네트워크 강의가 있다면 바로 구매해서 참고하고 싶지만.. 아직 제작하시는데 한참 남으신거 같아서 여기에 질문 남깁니다.. C++의 경우 Ioctlsocket()을 사용해서 블러킹 함수들을 논블러킹 함수로 사용할 수 있는걸로 알고 있습니다. 다만, C# Socket처럼 Async 라던가 Begin 같은 비동기 함수를 제공하지 않는데.. 논블러킹 함수로 직접 callback 비동기를 구현해야 하는건가요?

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

비동기 함수라고 항상 커널이 담당하는 것은 아니지만
하드웨어가 개입하는 (네트워크, 파일 입출력 등등) 경우라면
유저 레벨에서 처리할 수 없기에 항상 커널쪽으로 요청을 보내고 OS가 처리해주게 됩니다.

C++의 경우에도 이름은 다르지만 당연히 비동기 함수들을 다 똑같이 제공합니다.

keti-maas님의 프로필 이미지
keti-maas

작성한 질문수

질문하기