Unfortunately, we've reached the end of our journey learning about the ins and outs of working with concurrency in Python.
Throughout this book, we looked at the fundamental concepts of threads and processes, which has enabled us to work with more advanced concepts such as event-driven programming, reactive programming, and so on.
You should now be adept at the art of designing and building asynchronous systems that handle their workloads in a performant manner. You should also be comfortable with the different ways you can approach problems and why some ways are better than others.
If you have any questions, feel free to reach out to me either on my Twitter handle @elliot_f or through email at elliot@elliotforbes.co.uk. I'm always happy to try and lend a hand, or if you have any comments or feedback on the book, then I'm always happy to hear them!
...