Note: This course will be regularly updated.
In today s world, every CPU has a multi–core processor. However, unless your application has implemented parallel programming, it will fail to utilize the hardware s full processing capacity. This course will show you how to write modern software. Concurrent and parallel programming techniques are important. Getting the most out of your software is something all developers strive for, and concurrency, and the art of concurrent programming, happens to be one of the best ways in order for you to improve the performance of your applications. Through the careful application of concurrent concepts into our previously single–threaded applications, we can start to realize the full power of our underlying hardware, and strive to solve problems that were unsolvable in days gone past. With concurrency, we are able to improve the perceived performance of our applications by concurrently dealing with requests, and updating the frontend instead of just hanging until the backend task is complete. Gone are the days of unresponsive programs that give you no indication as to whether they’ve crashed or are still silently working.
This course covers how to build multithreaded, concurrent, and optimized applications that harness the power of multi–core processors. Once you ve understood the fundamentals of threading and concurrency, you ll gain insights into the data structure in .NET Core that supports parallelism. By choosing to implement systems in a concurrent fashion, we typically see an increase in the overall complexity of our code, and a heightened risk for bugs to appear within this new code. In order to successfully implement concurrent systems, we must first understand some of the key concurrency primitives and concepts at a deeper level in order to ensure that our applications are safe from these new inherent threats. The course will then help you perform asynchronous programming in C# and diagnose and debug parallel code effectively. Finally, you ll learn best practices such as test–driven development, and run unit tests on your parallel code.
Specification: The Ultimate Concurrent and Parallel Programming: A to Z