mygomii

[Kotlin] 14.3 스레드와 코루틴 비교 본문

Kotlin

[Kotlin] 14.3 스레드와 코루틴 비교

mygomii 2025. 6. 6. 19:44
반응형

스레드(Thread)

  • 운영체제(OS) 단위의 동시성 실행 단위
  • 각 스레드는 자체 스택 메모리를 사용
  • 스레드는 생성 비용이 높음 (수 ms~수십 ms)
  • 수천 개 이상의 스레드 생성은 메모리, 스케줄링 비용 측면에서 한계가 있음

코루틴(Coroutine)

  • 언어 단위의 동시성 실행 단위 (Kotlin 언어 레벨에서 제공)
  • 스레드보다 가볍고 효율적
    • 단일 스레드 위에서 수만 개의 코루틴 동시 실행 가능
    • 코루틴은 스레드 풀 또는 메인 스레드 위에서 동작
  • 컨텍스트 스위칭 비용이 낮음 (스레드와 달리 OS 개입이 거의 없음)
  • suspend/resume로 상태 저장 및 재개 → 비동기 작업에 적합

항목스레드(Thread)코루틴(Coroutine)

생성 비용 높음 낮음
실행 단위 OS 단위 언어 단위 (Kotlin)
개수 수천 개 한계 수만 개 가능
컨텍스트 전환 비용 높음 낮음
비동기 지원 직접 관리 (callback, Future 등) 언어 차원 (suspend, launch)
반응형