Skip to content

Latest commit

 

History

History
318 lines (190 loc) · 13.1 KB

concurrency_and_parallelism.md

File metadata and controls

318 lines (190 loc) · 13.1 KB

Concurrency and parallelism

Table of contents


Introduction and overview

🔗



SIMD

🎥

SIMD within a register (SWAR)

🔗


Multithreading

🔗

🎥

📖

📄

Concurrency and the standard library

🔗

🎥

std::atomic

🎥

std::atomic_shared_ptr

🔗

std::condition_variable

The std::condition_variable is a synchronization primitive that can be used to block a thread, or multiple threads at the same time, until another thread both modifies a shared variable (the condition), and notifies the std::condition_variable.

std::mutex

The std::mutex class is a synchronization primitive that can be used to protect shared data from being simultaneously accessed by multiple threads.

std::promise / std::future

The std::promise provides a facility to store a value or an exception that is later acquired asynchronously via a std::future object created by the std::promise object.

std::async

🔗

std::thread

std::lock_guard

Data races and race conditions

Lock-based

Mutex locks

🔗

Spin locks

🔗

Lock-free

Lock-free programming is a set of techniques for writing concurrent programs without using explicit locks.

🎥

Hazard pointers

🔗

Read-copy-update (RCU)

🔗

🎥

Memory model

🔗

POSIX threads

🔗

Coroutines

🎥

Executors

🎥

Concurrency patterns

See Concurrency patterns – Patterns, idioms, and design principles.


GPU computing

🎥