• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

21.08.25 09:24 작성 조회수 103

0

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

답변 1

답변을 작성해보세요.

0

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

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

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