ring-buffer Data structure with two pointers tail and head, which can be safely used by two independent threads.