카테고리 없음

내일배움캠프 75일차 TIL 최종 프로젝트 - 태스크(Task), 잡 시스템(Job System)

joseph2518 2024. 12. 31. 03:52

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 SystemBurst Compiler로 성능을 극대화.
  • Worker Thread에서 작업을 병렬로 실행하며, 메인 스레드와 독립적으로 동작.
  • Unity API와 연동 가능.

장점

  • 성능 최적화: Unity가 스레드 풀을 관리하여 병렬 처리가 효율적.
  • 다중 코어 활용: CPU 코어를 최대로 사용해 연산 성능 향상.
  • Burst Compiler와 통합: 네이티브 코드 수준의 속도를 제공.

제한사항

  • Unity의 메인 스레드 전용 API는 Job System 내부에서 사용할 수 없음.
  • 사용법이 상대적으로 복잡하며, 구조 설계가 필요함.