title: Lock Free Queue -- Single Producer, Multiple Consumers
body: <p>I am looking for a method to implement lock-free queue data structure that supports single producer, and multiple consumers. I have looked at the classic method by Maged Michael and Michael Scott (1996) but their version uses linked lists. I would like an implementation that makes use of bounded circular buffer. Something that uses atomic variables? </p>
  
  <p>On a side note, I am not sure why these classic methods are designed for linked lists that require a lot of dynamic memory management. In a multi-threaded program, all memory management routines are serialized. Aren't we defeating the benefits of lock-free methods by using them in conjunction with dynamic data structures?</p>
  
  <p>I am trying to code this in C/C++ using pthread library on a Intel 64-bit architecture.</p>
  
  <p>Thank you,
  Shirish</p>