[실행 방식]
스레드: 운영체제가 스케줄링하며, 동시에 여러 스레드가 실행될 수 있다.
코루틴: 개발자가 코드상에서 명시적으로 언제 멈추고 언제 실행될지를 제어한다.
[메모리 사용]
스레드: 각 스레드는 자신만의 스택을 가지며, 메모리 사용량이 상대적으로 크다.
코루틴: 더 적은 메모리를 사용하며, 여러 코루틴이 하나의 스레드에서 실행될 수 있다.
[동기화 문제]
스레드: 멀티 스레드 환경에서는 동기화 문제가 발생할 수 있으며, 이를 해결하기 위해 락, 뮤텍스, 세마포어 등의 도구가 필요하다.
코루틴: 일반적으로 멀티 스레드 환경에서 발생하는 동기화 문제에 덜 민감하다. 하지만 여러 코루틴이 데이터를 공유할 때 동기화 문제가 발생할 수 있다.
[생성과 전환 오버헤드]
스레드: 스레드의 생성 및 전환에는 상대적으로 높은 오버헤드가 발생한다.
코루틴: 코루틴은 경량이기 때문에 생성 및 전환의 오버헤드가 매우 낮다.
'KDT > 유니티 기초' 카테고리의 다른 글
[SimpleRPG] 보스씬 진입시 이전 씬의 아이템 장착하기 (0) | 2023.08.15 |
---|---|
프로세스(Process), 스레드 (Thread) 그리고 코루틴 (Coroutine) (0) | 2023.08.15 |
동기와 비동기란 무엇일까? (0) | 2023.08.15 |
[SimpleRPG] 보스전 구현(2) 탐지 범위 수정 (0) | 2023.08.14 |
[SimpleRPG] 보스전 구현 (1) (0) | 2023.08.14 |