14
The Multiprocessing, Threading, and Concurrent.Futures Modules
When we eliminate the complexities of shared state and design around pure functions with non-strict processing, we can leverage concurrency and parallelism to improve performance. In this chapter, we’ll look at some of the multiprocessing and multithreading techniques that are available to us. Python library packages become particularly helpful when applied to algorithms designed from a functional viewpoint.
The central idea here is to distribute a functional program across several threads within a process or across several processes in a CPU. If we’ve created a sensible functional design, we can avoid complex interactions among application components; we have functions that accept argument values and produce results. This is an ideal structure for a process or a thread.
In this chapter, we’ll focus on several topics:
The general idea of functional programming and concurrency.
What concurrency...