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

y_y님의 프로필 이미지
y_y

작성한 질문수

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

비동기와 관련해서 궁금한점이 있습니다.

작성

·

159

0

비동기 함수를 호출하면 다른 스레드에 의해 해당 코드가 실행되는 것으로 알고있습니다.
그런데 만약
main 스레드 쪽에서 다음과 같이
int ret = 비동기함수();
이때, 비동기 함수가 반환한 값을 ret 변수에 넣어주는 행위는 main 스레드에서 해줘야 되는게 아닌가요 ?
그렇다면 main 스레드는 더 이상 진행하지 못하고 ret 에서 기다려야 되는게 맞는거 같은데...
다른 스레드에서 비동기 함수 처리 후 ret 변수에 넣어주는 거 까지 처리를 해주는건가요 ?

답변 1

0

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

비동기 함수를 호출하면 다른 스레드에 의해 해당 코드가 실행되는 것으로 알고있습니다.
비동기 = 멀티쓰레드는 아닙니다.
말 그대로 동기(synchronous)가 아닌, 즉 동시에 일어나지 않는다 << 가 정확합니다.
다만 이 부분은 많이 난해해서 C++ 서버에서 자세히 다룹니다.

int ret = 비동기함수();
이렇게 반환값을 즉시 꺼내와야 하는 식으로 사용하기 보단
완료되면 콜백 함수가 실행하는 식으로 진행됩니다.
javascript를 해보면 더 느낌이 팍 올거에요.

그냥 컨텐츠를 만들다 보면 감이 오니 일단 넘어가시면 됩니다.

y_y님의 프로필 이미지
y_y

작성한 질문수

질문하기