비동기 [Unity] 코루틴(Coroutine)과 멀티 스레드(Multi Thread)의 차이점 코루틴과 멀티스레드 둘 다 비동기 작업을 위한 기능이란 점은 동일합니다. 다만, 내부적으로 작동하는 로직이 좀 다릅니다. 멀티 스레드 작동 방식 멀티 스레드의 하나의 프로세스 안에서 여러개의 스레드가 병렬로 작동하는 방식입니다. 하나의 작업에 하나의 스레드를 할당해주어야 하기 때문에 코루틴에 비해서 무겁습니다. 코루틴 작동 방식 코루틴은 멀티 스레드와 다르게 하나의 스레드 안에서 작업이 이루어집니다. 다만 각각의 작업을 프레임단위 혹은 시간 단위로 나누어서 실행하기 때문에 마치 병렬 구조로 작동하듯이 실행됩니다. 스레드를 늘리지 않기 때문에 멀티스레드 보다 가볍고 코드도 간결합니다. [Unity] 코루틴(Coroutine)과 인보크(Invoke)의 차이점 🎲 코루틴 & 인보크란? 코루틴과 인보크는 둘 다 유니티에서 병렬적인 프로그래밍을 할 대 사용되는 기능입니다. 멀티 스레드 처럼 실제로 스레드가 추가되어 비동기식으로 작동하지는 않지만 함수내에 중단점 혹은 반복점을 설정하여 마치 비동기식 처럼 작동합니다. 코루틴이 없을경우 지금 시점으로부터 5초 뒤에 특정 함수를 불러오고 싶다면 매 프레임마다 시간을 체크한 후 실행시켜주어야 합니다. 헌데, 코루틴을 사용할 경우 해당함수를 5초후에 깨워달라고 한 후에 잠들어 있다가 실행되니 매 프레임마다 시간 체크를 하지않아도 되어서 효율적입니다. 🍳 코루틴 특징 GameObject가 active상태일 때에만 작동하며 Time.scale의 영향을 받을지 말지 결정 가능합니다. 오브젝트를 비활성봐할 시 코루틴이 종료되고, .. 이전 1 다음