Chapter 9: Managing Concurrency
Concurrent systems are all around us. When you download a file, listen to streaming music, initiate a text chat with a friend, and print something in the background on your computer, all at the same time, you are experiencing the magic of concurrency in action. The operating system manages all these for you in the background, scheduling tasks across available processors (CPUs).
But do you know how to write a program that can do multiple things at the same time? More importantly, do you know how to do it in a way that is both memory- and thread-safe, while ensuring optimal use of system resources? Concurrent programming is one way to achieve this. But concurrent programming is considered to be a difficult topic in most programming languages due to challenges in synchronizing tasks and sharing data safely across multiple threads of execution. In this chapter, you'll learn about the basics of concurrency in Rust and how Rust makes it easier to prevent...