A circular buffer class that supports an arbitrary amount of producers and consumers operating in their own threads