Concurrency
std::thread
Create and manage system threads using std::thread and modern std::jthread (C++20).
Mutexes
Synchronize shared resources using std::mutex, recursive_mutex, shared_mutex, and RAII scope locks.
Condition Variables
Coordinate threads using std::condition_variable to wait for state changes without active busy-waiting.
Atomic Operations
Write lock-free concurrent code using std::atomic and compare-and-swap (CAS) primitives.
Futures and Promises
Transmit values or exceptions asynchronously between producer and consumer threads using std::promise and std::future.
std::async
Launch asynchronous tasks using std::async, understand policies, and avoid the temporary future destructor trap.
Thread Pools
Build a thread pool using worker loops, task queues, and condition variables to optimize resource usage.
Deadlock Prevention
Identify Coffman deadlock conditions and resolve lock contention issues using std::scoped_lock.
Memory Ordering
Understand the C++ memory model, instruction reordering, and atomic synchronization modes.
Coroutines (C++20)
Build stackless asynchronous generators and tasks using co_await, co_yield, and promise structures in C++20.