English

Concurrent Double-Ended Priority Queues

Data Structures and Algorithms 2025-08-20 v1

Abstract

This work provides the first concurrent implementation specifically designed for a double-ended priority queue (DEPQ). We do this by describing a general way to add an ExtractMax operation to any concurrent priority queue that already supports Insert and ExtractMin operations. The construction uses two linearizable single-consumer priority queues to build a linearizable dual-consumer DEPQ (only one process can perform Extract operations at each end). This construction preserves lock-freedom. We then describe how to use a lock-based combining scheme to allow multiple consumers at each end of the DEPQ. To illustrate the technique, we apply it to a list-based priority queue.

Keywords

Cite

@article{arxiv.2508.13399,
  title  = {Concurrent Double-Ended Priority Queues},
  author = {Panagiota Fatourou and Eric Ruppert and Ioannis Xiradakis},
  journal= {arXiv preprint arXiv:2508.13399},
  year   = {2025}
}