HS
Back to Articles
ThreadingSystem DesignJVM Concurrency

Coroutines vs Threads

January 14, 2026 4 min readBy Harshit Singh

Many developers view coroutines simply as lightweight threads. While this is a helpful conceptual analogy, the underlying execution models are completely different.

What is a Thread?

On the JVM and Android Runtime (ART), a thread maps directly to an Operating System kernel thread. Constructing a thread is an expensive operation, allocating approximately 1MB of memory for its private call stack.

What is a Coroutine?

A coroutine is a compile-time state machine that executes on top of OS threads. Instead of blocking, a coroutine suspends. Memory overhead is negligible (around 1KB).