so5extra
thread-pool
so5extra | thread-pool | |
---|---|---|
2 | 6 | |
22 | 1,961 | |
- | - | |
5.4 | 4.2 | |
about 2 months ago | 5 days ago | |
C++ | C++ | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
so5extra
-
SObjectizer Tales - 26. Dispatcher selection
In this case, it’s possible that we need to craft and use a custom dispatcher for the purpose. This might be not an easy task in general but we know where to start as we learnt in this previous post. For example, in calico we have discussed and crafted a do_gui_message_loop() function to guarantee the OpenCV drawing happens on the calling thread – and we call this function from the main thread. An alternative solution consists in developing a customized dispatcher. Just to share another example, SObjectizer’s companion project so5extra, provides some battle-tested dispatchers tailored for boost ASIO.
-
SObjectizer Tales - 5. Sending commands
Have you ever tried to cancel a timer on Alexa…while it was about to ring?! In SObjectizer, message cancellation is not strictly guaranteed. Indeed, a delayed message won’t be revoked if it left the timer thread already. This happens if you try cancelling the message too late, in that case there are good chances it will be delivered anyway. For example, if you send a message with delay 100ms and you try cancelling after 100ms then it might have left the timer thread already. There are ways to prevent this problem but won’t be discussed here. If you are interested, have a look at this.
thread-pool
- Learn performance improvement
-
How do i make the main thread sleep while worker threads work and worker threads sleep when waiting for main thread to execute them
Nope, it's definitely a problem with your code, not an external problem. This is an inevitable result when your threading scheme is not watertight. I don't have any code snippets since I'm just remembering what I've done in the past on projects, but if you can't design it to work yourself I suggest using a library. You said you've been "dealing with [multithreading] for some time now and think I have a decent understanding" but that doesn't sound like you really have a solid theoretical understanding of the subject, especially considering that it's a notoriously difficult subject. My recommendation is either to go back and plan out a watertight synchronization scheme on paper (may require finding some lecture series on multithreading theory), or to use an off-the-shelf thread pool library like this one I just found by googling thread pool library. I suggest the former if this is a hobby project, but if this code has a possibility of ever being used by other people I suggest doing the latter.
-
Header-only C++14 quality thread pool
Hi, I am looking for a header-only C++14 (or lower) quality thread pool. Ideally, it would be similar to BS::thread_pool but in C++14. Most of them I find on GitHub are bloated (e.g. concurrencpp) or have many open Issues. Ideal usage would be similar to:
-
A C++17 thread pool for high-performance scientific computing
There are lots of them and many are built into the OS(e.g. GCD on mac's, Windows has a thread pool api, TBB on all of them...)
It would be neat if the github site https://github.com/bshoshany/thread-pool or the paper did some comparisons to the existing body out there.
What are some alternatives?
SObjectizer - SObjectizer: it's all about in-process message dispatching!
thread-pool - A modern, fast, lightweight thread pool library based on C++20
sobjectizer - An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.
Magic Enum C++ - Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code
Lazy - Light-weight header-only library for parallel function calls and continuations in C++ based on Eric Niebler's talk at CppCon 2019.
cppinsights - C++ Insights - See your source code with the eyes of a compiler
ZIO - ZIO — A type-safe, composable library for async and concurrent programming in Scala
TDP - The Darkest Pipeline - Multithreaded pipelines for modern C++
envpool - C++-based high-performance parallel environment execution engine (vectorized env) for general RL environments.
concurrencpp - Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
Medo - Haiku Media Editor