Multithreading with C++17 and C++20
/
0 Comments
Forecasts about the future are difficult. In particular, when they are about C++20. Nevertheless, I…
A new Thread with C++20: std::jthread
One of the participants in my CppCon 2018 workshop asked me: "Can a std::thread be interrupted?". No,…
The End of my Detour: Unified Futures
After the last post to executors, I can finally write about the unified futures. I write in the post…
A Short Detour: Executors
A few weeks ago, one of the authors of the proposal to the futures in C++ Felix Petriconi wrote me an…
Task Blocks
Task blocks use the well-known fork-join paradigm for the parallel execution of tasks.
Who invented…
Transactional Memory
Transactional memory is based on the idea of a transaction from the database theory. Transactional memory…
Coroutines
Coroutines are functions that can suspend and resume their execution while keeping their state. The evolution…
Latches And Barriers
Latches and barriers are simple thread synchronization mechanisms, enabling some threads to wait until…
std::future Extensions
Tasks in the form of promises and futures have in C++11 an ambivalent reputation. On the one hand, they…
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.…