twoAtomics

Sequential Consistency

/
The atomics are the base of the C++ memory model. Per default, sequential consistency is applied. The…
spinLockSleep

The Atomic Flag

/
Atomics guarantee two characteristics. On the one hand, they are atomic, on the other, they provide synchronization…
ConditionVariableVersusTask

Thread Synchronization with Condition Variables or Tasks

/
In case you use promise and future to synchronize threads, they have much in common with condition variables.…
Overview

C++ Memory Model

/
Since C++11, C++ has a memory model. It is the foundation for multithreading. Without it, multithreading…
async

The Special Futures

/
The parent of a thread has to take care of their child. The parent can wait until his child is done or…
promiseFuture

Promise and Future

/
With std::promise and std::future, you have full control over the task. Full control over the task A…
packagedTask

Asynchronous Callable Wrappers

/
std::packaged_task enables you to write a simple wrapper for a callable, which you can invoke later. std::packaged_task To…
async

Asynchronous Function Calls

/
std:.async feels like an asynchronous function call. Under the hood std::async is a task. One, which…
tasksEng

Tasks

/
Tasks were one of the latest additions to the C++11 standard. They give you a better abstraction than…
conditionVariable

Condition Variables

/
Condition variables allow us to synchronize threads via notifications. So, you can implement workflows…