Intermediate Topic 22 of 51 Concurrency & Parallelism
Green Threads
User-space scheduled lightweight threads.
How it works
Green threads are lightweight threads scheduled by a language runtime or library in user space instead of by the operating system. Many green threads are multiplexed onto a few OS threads, which makes creation and context switching cheap, with small stacks that can grow, so programs can have hundreds of thousands. Examples include Go's goroutines, Erlang processes, Java's virtual threads, early Java green threads and Python's gevent greenlets. The runtime handles scheduling, often with preemption or cooperative yielding at blocking points.
Where it is used
Servers handling very many concurrent connections with simple blocking-style code, actor systems and concurrent simulations use green threads.
Common pitfall
A blocking system call or a long CPU loop can block the OS thread under the runtime and stall other green threads unless the runtime compensates. Interactions with native libraries and thread-local storage are tricky. Debugging tools may not understand them. Pinning issues exist in some runtimes. Learn the runtime's scheduler and avoid blocking operations that it cannot see.
Where it fits in the course
Green Threads is topic 22 of 51 in Concurrency & Parallelism, rated Intermediate. It follows Futures and Promises Model. The next topic is Actor Model.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Concurrency & Parallelism quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Concurrency & Parallelism quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Green Threads?
Where do people use Green Threads?
What is the most common mistake with Green Threads?
What should I learn before this topic?
How can I practice it?
Is Green Threads hard to learn?
How long does it take to learn Green Threads?
Which topics are related to Green Threads?
What should I study after Green Threads?
Related topics
- Futures and Promises Model (Concurrency & Parallelism)
- Actor Model (Concurrency & Parallelism)
- Coroutines (Concurrency & Parallelism)
- Communicating Sequential Processes (Concurrency & Parallelism)
- Threads (Operating Systems)
- Green Computing (Emerging & Frontier Topics)