Introduction
Programming requires understanding and knowledge of basic data structures and algorithms. To choose the best-suited data structure for a concurrent situation, a programmer has to know about many things, such as algorithm time, space complexity, and big O notation. In different well-known scenarios, we always know which data structures are more efficient.
For concurrent computations, we need to have appropriate data structures. These data structures have to be scalable, avoid locks when possible, and at the same time provide thread-safe access. The .NET framework, since Version 4, has the System.Collections.Concurrent
namespace with several data structures in it. In this chapter, we will cover several data structures and show very simple examples of how to use them.
Let us start with ConcurrentQueue
. This collection uses atomic Compare and Swap (CAS) operations and SpinWait
to ensure thread safety. It implements a First In First Out (FIFO) collection, which means that the items...