유니티 자격시험 Unity GameDeveloper)7. 멀티스레드, 코루틴

2021. 12. 6. 18:11카테고리 없음

반응형

1. 스레드 (단일 스레드 / 멀티 스레드)

유니티는 단일 스레드로 처리함(기본)  >> 작업 한 개씩 처리 (Massage Loop, 순서대로 작업 처리)

 

유니티 내부적으로는 멀티 쓰레드 사용 (CPU에서 동시에 처리. 단점으로는 정확한 디버깅,오류 제어 어려움)

 

        멀티 쓰레드 사용 시, 레이스 컨디션 현상 오류 발생 할 수 있음

 

레이스 컨디션 = 하나의 변수, 리소스에 여러 메소드가 동시에 접근하여 누구한테 우선수위를 주는지 결정

 

 

 

 이러한 문제점은 c# 자체의 task 로 보완 가능하며

 

데이터 처리 시간이 많이 걸릴 때도 사용한다고 한다.

 

 

최근에는 유니티 자체에서 제공하는 Job system으로 멀티 스레드를 사용하고 게임 성능을 향상 할 수 있다고 함 

 

 

 

2. 코루틴 (단일 스레드)

함수를 작동 시 게임 정지를 방지하도록 Main Loop로 돌려준다.

   - yield 양보, return new waitseconds ~초간 Main Loop로 양보하라

 

양보 후 코루틴 내 작업한다.

 

메인과 서브 루프 간 협동하며, 단일 스레드 루프 하에서 일을 번갈아가며 진행

 

 

 

 

 

 

   

반응형