A Lock-Free Algorithm for Concurrent Bags
Report, 2011

A lock-free bag data structure supporting unordered buffering is presented in this paper. The algorithm supports multiple producers and multiple consumers, as well as dynamic collection sizes. To handle concurrency efficiently, the algorithm was designed to thrive for disjoint-access-parallelism for the supported semantics. Therefore, the algorithm exploits a distributed design combined with novel techniques for handling concurrent modifications of linked lists using double marks, detection of total emptiness, and efficient memory management. Experiments on a 24-way multi-core platform show significantly better performance for the new algorithm compared to previous algorithms of relevance. Keywords: concurrent; data structure; non-blocking; shared memory;

shared memory


data structure



Håkan Sundell

Anders Gidenstam

Marina Papatriantafilou

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Philippas Tsigas

Chalmers, Computer Science and Engineering (Chalmers), Networks and Systems (Chalmers)

Areas of Advance

Information and Communication Technology


Basic sciences

Driving Forces

Innovation and entrepreneurship

Subject Categories

Software Engineering

Computer Science

Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University

More information