Threads vs Coroutines — Why C++ Has Two Concurrency Models - Conor Spilsbury - CppCon 2025 @CppCon
Threads vs Coroutines — Why C++ Has Two Concurrency Models - Conor Spilsbury - CppCon 2025  @CppCon
Uploaded March 2026 | Updated September 2026, 2 weeks ago
cppcon.org
---

Threads vs Coroutines — Why C++ Has Two Concurrency Models - Conor Spilsbury - CppCon 2025
---

The C++11 standard introduced a powerful set of tools for concurrency such as threads, mutexes, condition variables, and futures. More recently, C++20 introduced another powerful but fundamentally different concurrency abstraction in the form of coroutines. But coroutines are not just an evolution or a replacement for threads. Instead, they each solve different problems in different ways. Choosing the right tool for the job requires understanding how each works under the hood and where they shine. This talk will help build that intuition by looking at how each interacts with the operating system and hardware which will help make better decisions when choosing which to use.

We'll explore how threads and synchronization primitives work at the operating-system and hardware level, from thread creation and scheduling to where context switching and synchronization introduce performance costs. We’ll then contrast this to the coroutine model introduced in C++20 which takes a fundamentally different approach by using a cooperative model based on the suspension and resumption of work.

Given this understanding, we’ll finish by applying this intuition to a set of real-world scenarios to identify whether threads or coroutines are a better fit for the problem at hand.

---

Slides: github.com/CppCon/CppCon2025/blob/main/Presentations/Threads_vs_Coroutines.pdf

Work at Hudson River Trading (HRT): tinyurl.com/safxfctf
---

Conor Spilsbury

Conor Spilsbury is a Senior Software Engineer at Bloomberg, where he works on the Listed Securities’ Execution Management System (EMSX). EMSX is a high-performance, high-throughput multi-asset trading solution. Conor is also the chair of Bloomberg's C++ Guild. He holds a master’s degree in mathematics from the University of Exeter.
---

CppCon is the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community. You will enjoy inspirational talks and a friendly atmosphere designed to help attendees learn from each other, meet interesting people, and generally have a stimulating experience. Taking place this year in Aurora, Colorado, near the Denver airport, and including multiple diverse tracks, the conference will appeal to anyone from C++ novices to experts.
Annual CppCon Conference - cppcon.org
linkedin.com/company/cppcon
https://x.com/cppcon
facebook.com/CppConference
reddit.com/r/cppcon
https://mastodon.social/@CppCon
---

Videos Filmed & Edited by Bash Films: BashFilms.com
YouTube Channel Managed by Digital Medium Ltd: events.digital-medium.co.uk
---

#cpp #cplusplus #cppcon #cppprogramming #cplusplusprogramming #softwaredevelopment #softwareengineering #coding #code #computerscience #technology #technews #programming #programmer
Threads vs Coroutines — Why C++ Has Two Concurrency Models - Conor Spilsbury - CppCon 2025Lightning Talk: The Type Safe Builder Pattern for C++ - John Stracke - CppCon 2025Lightning Talk: Promote Modern C++ Usage With Coding Questions Part 2 - Zhenchao Lin - CppCon 2025Interview With Patrice Roy (Optimizing with Modern C++) - CppCon 2024Crafting the Code You Don’t Write: Sculpting Software in an AI World - Daisy Hollman - CppCon 2025Leverage AI Agents to Refactor and Modernize C++ Code - Jubin Chheda - CppCon 2025CppCon 2016: Arthur ODwyer “Template Normal Programming (part 1 of 2)”Zero-Overhead Abstractions: Building Vector Math Libraries with Concepts and Customization PointsPowered by AI: A Cambrian Explosion for C++ Software Development Tools - Emery Berger - CppCon 2023Wait is it POSIX? Investigating Different OS and Library Implementations for Networking - CppConCutting C++ Exception Time by +90%? - Khalil Estell - CppCon 2025The Evolution of CMake: 25 Years of C++ Build Portability - Bill Hoffman - CppCon 2025
CppCon |

Threads vs Coroutines — Why C++ Has Two Concurrency Models - Conor Spilsbury - CppCon 2025

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER