Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
C++ internals for software engineer role
·
Module 7
C++ Concurrency Fundamentals
1
`std::thread` and POSIX Threads: A Mapping
Explain how `std::thread` maps to underlying OS primitives like POSIX threads on Linux.
2
Managing C++ Threads: Creation, Joining, and Detaching
Implement thread creation, joining, and detaching, and manage `std::thread` object lifetimes.
3
Memory-Level Race Conditions and Data Races
Analyze race conditions and data races at the memory level.
4
Mutexes and RAII Locks
Implement critical sections using `std::mutex` and RAII-based wrappers (`std::lock_guard`, `std::unique_lock`).
5
Mutex Implementation: Atomic Operations and OS Primitives
Explain how a mutex is typically implemented using atomic operations and OS primitives like futexes.
6
Thread Synchronization with `std::condition_variable`
Use `std::condition_variable` to synchronize threads based on state changes.
7
C++ Memory Model: Understanding Happens-Before and Data Race Prevention
Explain the C++ memory model's concept of 'happens-before' and its role in preventing data races.
8
Debugging Deadlocks: Common Scenarios
Analyze and debug common deadlock scenarios (e.g., AB-BA locking).
Previous module
STL Internals: Containers and Algorithms
Next module
Advanced C++ Concurrency