In a thread-safe concurrent queue , consumers typically wait for producers to make data available. In a synchronous queue , producers similarly wait for consumers to take the data. We present two new nonblocking, contention-free synchronous queues that achieve high performance through a form of dualism : The underlying data structure may hold both data and, symmetrically, requests .