Back to Articles
Threading•System Design•JVM 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).