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/multiqueueYou 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.