코루틴은 코틀린 언어에서 자체적으로 지원하는 부분(컴파일러의 지원과 코틀린 기본 라이브러리의 요소)과 코틀린 코루틴 라이브러리(kotlinx.coroutines)로 구성되어 있다. 둘은 같은 것으로 취급되곤 하지만, 전혀 다르다.

코틀린 언어에서 지원하는 코루틴은 kotlin.coroutines 패키지에 포함되어 있다.

코틀린 언어 차원에서는 자유도를 보장하기 위해 코루틴을 최소한으로 지원하고 있다. 다른 프로그래밍 언어에서 동시성을 구현한 스타일을 이식하기 위해 사용할 수 있지만, 직접 다루기 쉽지는 않다. ex) suspend 키워드, suspendCoroutines, Continuation

kotlinx.coroutines 라이브러리를 사용하려면 프로젝트에 별도로 의존성을 추가해야 한다. 이 라이브러리는 코틀린 언어 차원에서 코루틴을 지원하기 위해 만들어졌다. 사용하기 훨씬 쉽고 동시성을 명확하게 구현할 수 있게 해준다. ex) launch, async, Deferred

언어 차원에서의 코루틴은 거의 모든 동시성 스타일이 허용된다. kotlinx.coroutines 라이브러리의 코루틴은 단 하나의 명확한 동시성 스타일을 위해 설게되어 있다.

지금까지의 내용은 코틀린 언어 차원에서 지원하는 코루틴 개념에 대한 내용이다.

패턴과 프로그래밍 방식은 시간이 지나면서 변한다. 코틀린 언어 자체에서 지원하는 코루틴은 바뀌지 않지만, 이것을 활용한 새로운 라이브러리가 kotlinx.coroutines를 대체할 수도 있다.