.NET 4 introduces new data structures designed to simplify thread-safe access to shared data, and to increase the and scalability of multi-threaded applications. To best take advantage of these data structures, it helps to understand their characteristics in different scenarios.

Chunyan Song, Emad Omara and Mike Liddell measured the performance of four new concurrent collection types: ConcurrentQueue(T), ConcurrentStack(T), ConcurrentBag(T), and ConcurrentDictionary(TKey, TValue), and published their findings in this paper:

  • Thread-safe Collections in .NET Framework 4 and Their Performance Characteristics