In this chapter, we introduced the primitives of concurrent computation. Subprocesses, forked processes, and threads are the basic building blocks of all concurrent applications. In Rust threads, there are additional concerns that are introduced by the language to encourage type and thread safety.
In several examples, we built a concurrent web server using fork or threads. Later, while exploring thread behavior, we looked closely at what data can be shared between threads and how information can be sent between threads safely.
In the design pattern section, we introduced the actor design pattern. This popular technique combines some elements of object-oriented programming with other concepts from functional programming. The result is a programming tool designed specifically for complex resilient concurrency.
In the next chapter, we will explore performance, debugging,...