코루틴이란?
장단점
공부하며 느낀 점
참조한 페이지
코틀린에서 중요한 역할을 하는 코루틴에 대해 알아보았다.
코루틴이란?
비동기 과정을 처리하는 개념의 하나이다. 서브루틴의 진입과 탈출이 여러개라는 특징이 있다.
코틀린 kotlin 에서는 UI를 그리다가 멈추는 락업을 막기 위해 사용한다.
코틀린 과 직접적인 연관은 없는 개념이다. 훨씬 옛날(1958년)부터 존재했다고한다. 그렇기 때문에 코틀린 뿐 아니라 유니티, C#등에서도 사용되는 개념이다.
코루틴의 장단점
장점
- 간단한 코드 작성 : 유지보수성과 예측가능성이 좋아진다.
- 동시성 프로그래밍 지원 : 진입, 탈출이 자유롭기 때문에 동시성 프로그래밍을 구현 할 수 있다.
- 가볍다 : 2000개 미만의 스레드에는 1.5GB 이상의 메모리가 필요, 100만 개의 코루틴은 700MB 미만의 메모리가 필요
단점
- 오브젝트 비활성화 시 코루틴이 정지한다.
스크립트는 비활성되 되어도 무방하다.
- 유니티 환경에서 가비지를 많이 생성한다.
공부하며 느낀 점
- "코"루틴 이어서 코틀린의 개념인줄 알았는데 옛날부터 있던 개념인것이 신기했다.
- 동시성 프로그래밍은 컨텍스트 스위칭과 비슷한 개념이라고 생각했는데 다른 개념임을 알게 되었다. 심지어 유지보수성과 메모리 사용량에 큰 차이가 났다.
- 이런 개념은 잘 익혀두면 여러가지로 많이 써먹을 수 있을 것 같다.
참조한 페이지
Kotlin coroutines on Android
코틀린 코루틴(coroutine) 개념 익히기
[Unity / C#] 코루틴(Coroutine)
코루틴(Coroutine)에 대하여