Multithreading 101: Concurrency Primitives From Scratch - Arvid Gerstmann - Meeting C++ 2019
A new video from Meeting C++ 2019
Multithreading 101: Concurrency Primitives From Scratch
by Arvid Gerstmann
February 10-15, Hagenberg, Austria
March 19-21, Madrid, Spain
April 1-4, Bristol, UK
June 16-21, Sofia, Bulgaria
By Meeting C++ | Dec 21, 2019 10:31 AM | Tags: performance multithreading meetingcpp intermediate experimental efficiency concurrency c++17 c++14 c++11 basics advanced
A new video from Meeting C++ 2019
Multithreading 101: Concurrency Primitives From Scratch
by Arvid Gerstmann
By Meeting C++ | Feb 10, 2018 11:16 AM | Tags: performance parallelism multithreading meetingcpp
A talk on doing multithreading without threads...
True parallelism, with no concept of threads
by Alfred Bratterud
By Meeting C++ | Feb 1, 2018 03:08 AM | Tags: performance multithreading meetingcpp efficiency
A talk on understanding when a reader-writer lock beats a mutex, and when not.
Reader-Writer Lock versus Mutex
by Jeffrey Mendelsohn
By Meeting C++ | Jan 25, 2018 03:20 AM | Tags: performance parallelism multithreading meetingcpp concurrency boost
This talk is about a new future, used in Sean Parents Concurrency library
There is a new future
by Felix Petriconi
By Razvan Pascalau | Mar 16, 2015 05:22 AM | Tags: multithreading intermediate c++11 atomic
An interesting approach on how semaphores could be used in Modern C++ multithreaded programming:
Semaphores are Surprisingly Versatile
From the article:
In multithreaded programming, it’s important to make threads wait. They must wait for exclusive access to a resource. They must wait when there’s no work available. One way to make threads wait – and put them to sleep inside the kernel, so that they no longer take any CPU time – is with a semaphore.
I used to think semaphores were strange and old-fashioned. They were invented by Edsger Dijkstra back in the early 1960s, before anyone had done much multithreaded programming, or much programming at all, for that matter. I knew that a semaphore could keep track of available units of a resource, or function as a clunky kind of mutex, but that seemed to be about it.
My opinion changed once I realized that, using only semaphores and atomic operations, it’s possible to implement all of the following primitives:
- A Lightweight Mutex
- A Lightweight Auto-Reset Event Object
- A Lightweight Read-Write Lock
- Another Solution to the Dining Philosophers Problem
- A Lightweight Semaphore With Partial Spinning ...