Skip to content
forked from mstump/queues

A public domain lock free queues implemented in C++11

License

Notifications You must be signed in to change notification settings

shadowleaves/queues

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A public domain lock free queues implemented in C++11

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%