Posts
Dining Philosophers Problem II
/
0 Comments
In the last post "Dining Philosophers Problem I", Andre Adrian started his analysis of the classical…
Barriers and Atomic Smart Pointers in C++20
In my last post, I introduced latches in C++20. A latch enables its threads to wait until a counter becomes…
Performance Comparison of Condition Variables and Atomics in C++20
After the introduction to std::atomic_flag in my last post, Synchronization with Atomics in C++20, I…
Synchronization with Atomics in C++20
Sender/receiver workflows are pretty common for threads. In such a workflow, the receiver is waiting…
Atomic References with C++20
Atomics receives a few essential extensions in C++20. Today, I start with the new data type std::atomic_ref.
The…
C++20: Concurrency
This post concludes my overview of C++20. Today's post is about the concurrency features in the next…
ABA – A is not the same as A
A common problem in concurrency is the so-called ABA problem. That means you read a value twice and each…
Blocking and Non-Blocking Algorithms
Blocking, non-blocking, lock-free, and wait-free. Each of these terms describes a key characteristic…
Atomic Smart Pointers
C++20 will have atomic smart pointers. To be exact, we will get a std::atomic_shared_ptr and a std::atomic_weak_ptr.…
My Conclusion: Summation of a Vector in three Variants
After I've calculated in three different ways the sum of a std::vector I want to draw my conclusions.
The…