용어정리

[Unity] 코루틴

youcheachae 2025. 3. 10. 22:49

코루틴은 동기적인가 비동기적인가 ? 

 

유니티 코루틴 공식문서에서 : 
하지만 코루틴은 스레드가 아니라는 점을 명심해야 합니다. 코루틴의 동기 작업은 여전히 메인 스레드에서 실행됩니다. 메인 스레드에 소요되는 CPU 시간을 줄이려면 다른 스크립트 코드에서와 마찬가지로 코루틴의 작업 차단을 방지하는 것이 중요합니다. Unity 내에서 다중 스레드 코드를 사용하려면 
C# 잡 시스템
을 고려하십시오.

 

코루틴은 "동기적(synchronous)"이면서도 "비동기적인 실행 패턴"을 제공하는 특별한 케이스 이다.

 

동기와 비동기의 의미는 ?

  1. 동기 Synchronous
    1. 말 그래도 동시에 일어난다는 뜻
    2. 요청을 하면 바로 결과가 주어져야함
    3. 여러가지 요청을 동시에 할 수 없다
  2. 비동기 Asynchronous
    1. 말그대로 동시에 일어나지 않는
    2. 요청을 하고 결과과 오지 않아도 대기시간동안 다른 요청을 할 수 있다
    3. 여러개의 요청을 동시에 처리 가능

 

MS의 공식문서에는 아침식사 차리기를 예시로 든다

https://learn.microsoft.com/ko-kr/dotnet/csharp/asynchronous-programming/

 

C#의 비동기 프로그래밍 - C#

async, await 및 Task를 사용하여 비동기 프로그래밍을 지원하는 C# 언어에 대해 간략히 설명합니다.

learn.microsoft.com

 

코루틴의 한계

코루틴은 가비지 컬렉터를 많이 잡아먹는다

 

쓰레드 단일/멀티쓰레드?