Fast and Lock-Free Concurrent Priority Queues for Multi-Thread Systems
Journal article, 2005

We present an efficient and practical lock-free implementation of a concurrent priority queue that is suitable for both fully concurrent (large multi-processor) systems as well as pre-emptive (multi-process) systems. Many algorithms for concurrent priority queues are based on mutual exclusion. However, mutual exclusion causes blocking which has several drawbacks and degrades the overall performance of the system. Non-blocking algorithms avoid blocking, and several implementations have been proposed. Previously known non-blocking algorithms of priority queues did not perform well in practice because of their complexity, and they are often based on non-available atomic synchronization primitives. Our algorithm is based on the randomized sequential list structure called Skiplist, and a real-time extension of our algorithm is also described. In our performance evaluation we compare our algorithm with a well-representable set of earlier known implementations of priority queues. The experimental results clearly show that our lock-free implementation outperforms the other lock-based implementations in practical scenarios for 3 threads and more, both on fully concurrent as well as on pre-emptive systems.




shared data structure

skip list


priority queue



Håkan Sundell

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Philippas Tsigas

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Journal of Parallel and Distributed Computing

Vol. 65 5 609-627

Subject Categories

Computer and Information Science

More information