Java/Kotlin
-
[Coroutine] 코루틴 학습 - 1 (Coroutine?)Java/Kotlin 2022. 4. 16. 16:47
Coroutine? JVM에서 병렬 처리를 위해서 이미 RxJava, Reactor, 자바에서 지원하는 Multithreading 등 유용한 도구들이 많이 있습니다. 많은 사람들이 비동기 처리를 위해 콜백 패턴을 활용하기도 합니다. 효율적인 비동기 처리를 위한 옵션들이 이미 많이 있는 상황에서 코루틴은 어떤 차별점을 가지고 있을까요? 먼저 앞서 소개한 도구들에 대해서 정리해 보겠습니다. Multi-thread 앞서 소개한 도구들은 병렬 처리를 위해 쓰레드를 생성하고, 연산을 위한 쓰레드 스위칭이 필요합니다. 쓰레드를 생성하는 일은 많은 비용을 초래합니다. 쓰레드를 취소하기 위한 메커니즘이 존재하지 않습니다. 이는 메모리 누수 문제로 이어질 수 있습니다. 잦은 쓰레드 스위칭은 제어하기 어렵습니다. 코드량이..