20241230 / Unity_6차 17주차 월요일
태스크(Task)
태스크는 .NET에서 제공하는 비동기 프로그래밍의 일부로, Unity에서도 사용할 수 있다.
태스크는 주로 비동기 작업이나 I/O 처리에서 유용하다.
특징
- .NET의 Task를 사용하여 작업을 비동기로 실행.
- Unity 메인 스레드 외부에서 작업을 수행하고, 작업이 끝난 후 다시 메인 스레드에서 결과를 처리할 수 있음.
- 비동기 작업에 적합하지만, Unity API와의 호환성이 제한적.
장점
- 코드 가독성: async/await 키워드를 사용해 비동기 작업을 이해하기 쉽게 작성 가능.
- 멀티스레드 지원: 복잡한 연산을 비동기로 처리 가능.
제한사항
- Unity API는 메인 스레드에서만 접근 가능.
- 높은 성능 병렬 작업에는 적합하지 않을 수 있음.
잡 시스템(Job System)
Unity의 잡 시스템(Job System)은 멀티스레딩 작업을 최적화하기 위해
Unity 엔진에 통합된 고성능 병렬 처리 프레임워크다.
특징
- C#의 Job API를 사용해 작업을 정의하고, Unity의 C# Job System과 Burst Compiler로 성능을 극대화.
- Worker Thread에서 작업을 병렬로 실행하며, 메인 스레드와 독립적으로 동작.
- Unity API와 연동 가능.
장점
- 성능 최적화: Unity가 스레드 풀을 관리하여 병렬 처리가 효율적.
- 다중 코어 활용: CPU 코어를 최대로 사용해 연산 성능 향상.
- Burst Compiler와 통합: 네이티브 코드 수준의 속도를 제공.
제한사항
- Unity의 메인 스레드 전용 API는 Job System 내부에서 사용할 수 없음.
- 사용법이 상대적으로 복잡하며, 구조 설계가 필요함.