When developing multithreaded, we need to consider thread safety when sharing state across multiple threads. These techniques require the developer to understand possible race conditions and select the cheapest synchronisation technique to satisfy thread safety. However, while this process is essential, it can often become tedious and can make even simple algorithms seem overly complex and hard to maintain. In this module, we will explore the use of framework providedconcurrent data structures shipped with the Task Parallel Library that will simplify multithreaded code while maximising concurrency and efficiency. |