All Questions
Tagged with c++ concurrency
14
questions
6
votes
3
answers
3k
views
A multi-thread Producer Consumer, where a Consumer has multiple Producers (C++17)
EDID: Thank you very much for your feedback. I updated the code and opened a new post for the updated version. See here.
This post is loosely based on A multi-threaded Producer Consumer with C++11.
...
5
votes
2
answers
4k
views
C++20 Thread Pool
I've implemented a thread pool using C++20. I'm fairly new to concurrently/multi-threaded programming and wanted to work on a project that I could learn from while also getting to know some of the new ...
34
votes
2
answers
68k
views
A multi-threaded Producer Consumer with C++11
I am trying to learn concurrent programming in C++11. I tried to write code for a classic producer consumer concurrency problem. Would you please review and make any comments about it?
...
11
votes
3
answers
6k
views
Multi Threaded High Performance txt file parsing
EDIT
A port of Björn's answer to C++ with further improvements at bottom achieving up to 2.4GB/s on the reference machine.
Text file parsing and processing continues to be a common task. Often it's ...
7
votes
3
answers
1k
views
Lock-free multi-producer / multi-consumer queue in C++
I've been working on a lockless multi-producer, multi-consumer queue in an effort to learn as much as I can about concurrency, without the use of mutual exclusion. The queue uses a bounded ring buffer ...
5
votes
2
answers
2k
views
C++20 Single Queue Thread Pool
This is a follow up to my previous post. I've made a number of improvements to the thread pool and corrected some bugs as well.
The most up to date version of the code is available on my Github.
I ...
5
votes
1
answer
743
views
Concurrent for loop in C++
(See the next iteration.)
I have this easy to use facility that maps input elements to output elements concurrently by the means of a thread pool:
concurrent.h:
...
5
votes
3
answers
1k
views
Single Producer Single Consumer lockless ring buffer implementation
I am writing a simple ring buffer for my own education. Below is a crack at a strategy described in http://www.cse.cuhk.edu.hk/~pclee/www/pubs/ancs09poster.pdf : Producer and Consumer keep local ...
5
votes
1
answer
2k
views
Hybrid Lock Implementation
I have an algorithm that is painfully slow if I use 'pure' mutexes. That's because most of the critical sections are short and far shorter than the work to sleep a thread. However, it is also slower ...
4
votes
4
answers
5k
views
C++11 Blocking Queue learning exercise
As part of my own C++11 learning exercise I have implemented this Blocking Queue using the new C++11 thread API. One of the aspects I would like to improve is efficiency i.e. in the ...
3
votes
2
answers
241
views
Concurrent for loop in C++ - follow-up
I have incorporated all the cool points made by ChrisWue in the initial iteration of this post.
Now, I am not reinventing the wheel for my concurrent queue, but use internally ...
2
votes
1
answer
2k
views
C++20 Multi-queue Thread Pool with Work Stealing
This is a follow up to my previous post which also follows up on my first post regarding my thread pool implementation. I have since made some further changes and attempted to improve performance with ...
1
vote
1
answer
1k
views
A multi-thread Producer Consumer, where a Consumer has multiple Producers (C++17) - Part 2
This post is based on A multi-thread Producer Consumer, where a Consumer has multiple Producers (C++17). I am trying to build a Consumer that consumes data from ...
1
vote
1
answer
451
views
Implementation of a latch
As an exercise to learn more about multi-threading and atomic operations work in C++, I decided to implement a latch class in C++11 loosely based off of std::latch ...