Skip to content
A public domain lock free queues implemented in C++11
C++
Latest commit 319c253 Feb 19, 2014 @mstump Update README.md
Failed to load latest commit information.
include added my mpsc queue Feb 19, 2014
src added my mpsc queue Feb 19, 2014
.gitignore v1 Feb 15, 2014
CMakeLists.txt fix build error on linux, fix cache line bug Feb 16, 2014
LICENSE Initial commit Feb 13, 2014
README.md Update README.md Feb 19, 2014

README.md

Lock Free Queues

Public domain implementation of four different lock free queues:

  • SPSC lock free dynamic queue which requires a memory allocation with each insert.
  • MPSC lock free dynamic queue which requires a memory allocation with each insert.
  • SPSC wait free bound queue/ring buffer which which uses a fixed size pre-allocated buffer.
  • MPMC lock free bound queue/ring buffer which which uses a fixed size pre-allocated buffer.

Performance

These number are on my Early 2013 Retina Macbook Pro (2.7 GHz i7). The latency variability of memory allocation can have a signifigant impact on the dynamic queues, sometimes halving throughput.

Queue Throughput
SPSC dynamic 8 million
MPSC dynamic 8 million
SPSC fixed 200 million
MPMC fixed 54 million
Something went wrong with that request. Please try again.