Python Concurrency & Parallel Programming

Learning PathSkills: Multithreading, Multiprocessing, Async IO

Speed Up Your Python Program With Concurrency

With this learning path you’ll gain a deep understanding of concurrency and parallel programming in Python. You can use these newfound skills to speed up CPU or IO-bound Python programs.

Python Concurrency & Parallel Programming

Learning Path ⋅ 9 Resources

Speed Up Your Python Program With Concurrency

Course

Speed Up Python With Concurrency

Learn what concurrency means in Python and why you might want to use it. You'll see a simple, non-concurrent approach and then look into why you'd want threading, asyncio, or multiprocessing.

#1
Speed Up Your Python Program With Concurrency

Interactive Quiz

Python Concurrency Quiz

Async IO in Python: A Complete Walkthrough

Course

Hands-On Python 3 Concurrency With the asyncio Module

Learn how to speed up your Python 3 programs using concurrency and the asyncio module in the standard library. See step-by-step how to leverage concurrency and parallelism in your own programs, all the way to building a complete HTTP downloader example app using asyncio and aiohttp.

#2
An Intro to Threading in Python

Course

Threading in Python

In this intermediate-level course, you'll learn how to use threading in your Python programs. You'll see how to create threads, how to coordinate and synchronize them, and how to handle common problems that arise in threading.

#3
Getting Started With Async Features in Python

Tutorial

Getting Started With Async Features in Python

This step-by-step tutorial gives you the tools you need to start making asynchronous programming techniques a part of your repertoire. You'll learn how to use Python async features to take advantage of IO processes and free up your CPU.

#4
What is the Python Global Interpreter Lock (GIL)?

Tutorial

What Is the Python Global Interpreter Lock (GIL)?

Python's Global Interpreter Lock or GIL, in simple words, is a mutex (or a lock) that allows only one thread to hold the control of the Python interpreter at any one time. In this article you'll learn how the GIL affects the performance of your Python programs.

#5
Bypassing the GIL for Parallel Processing in Python

Tutorial

Bypassing the GIL for Parallel Processing in Python

In this tutorial, you'll take a deep dive into parallel processing in Python. You'll learn about a few traditional and several novel ways of sidestepping the global interpreter lock (GIL) to achieve genuine shared-memory parallelism of your CPU-bound tasks.

#6
Core Python Tutorials Artwork

Course

Parallel Map Reduce in Python

How to do parallel processing with multiprocessing and concurrent.futures using a functional programming map-reduce approach.

#7
First Steps With PySpark and Big Data Processing

Tutorial

First Steps With PySpark and Big Data Processing

Take your first steps with Spark, PySpark, and Big Data processing concepts using intermediate Python concepts.

#8
Python Data Science Artwork

Tutorial

NumPy Vectorization & Array Programming

How to take advantage of vectorization and broadcasting so you can use NumPy to its full capacity. In this tutorial you'll see step-by-step how these advanced features in NumPy help you writer faster code.

#9

Got feedback on this learning path?

Looking for real-time conversation? Visit the Real Python Community Chat or join the next “Office Hours” Live Q&A Session. Happy Pythoning!

« Browse All Learning Paths