Coroutines to lekkie prymitywy współbieżności do kodu asynchronicznego. Mogą się wstrzymywać bez blokowania wątku i są planowane przez runtime Kotlin, więc tysiące coroutine mogą działać na małej puli wątków. Wątki to cięższe byty systemu operacyjnego, które blokują się podczas oczekiwania.