The multiqueue is a concurrent, relaxed priority queue.
The idea is that internally there are c*p
priority queues, where p
is the
number of threads and c
is a tuning parameter. Elements are inserted into a
random queue while deletions delete the minimum of two random queues.
Clone the repository with
git clone https://github.com/marvinwilliams/multiqueue
You have two options on how to use this library
Then you can either build and install with
cmake -B build
cmake --build build
cmake --install build --prefix <prefix>
and include it in your cmake project with
find_package(multiqueue)
target_link_libaries(target PRIVATE multiqueue::multiqueue)
Copy the project into your source tree and include it as a subdirectory in cmake
add_subdirectory(multiqueue)
target_link_libraries(target PRIVATE multiqueue::multiqueue)
The implementation is subject of experimantation and thus has more customization points than practically desireable.