Obstruction-free synchronization: double-ended queues as an example
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms