Concurrency and Async Programming

Learning PathSkills: Python, Concurrency, Async IO, Global Interpreter Lock, Thread Safety, Parallel Processing, Performance Optimization, Multithreading, Code Efficiency

Speed Up Your Python Program With Concurrency

Unlock Python’s full potential with our concurrency and async programming path. Explore concurrency techniques, the Global Interpreter Lock, async IO, thread safety, and parallel processing to boost your program’s performance.

Concurrency and Async Programming

Learning Path ⋅ 7 Resources

Title image for Speed Up Python With Concurrency (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.

Title image for Python Concurrency (Speed Up Your Python Program With Concurrency)

Interactive Quiz

Python Concurrency

Title image for Understanding Python's Global Interpreter Lock (GIL) (What is the Python Global Interpreter Lock (GIL)?)

Course

Understanding Python's 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 video course you'll learn how the GIL affects the performance of your Python programs.

Title image for Threading in Python (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.

Title image for Python Threading (An Intro to Threading in Python)

Interactive Quiz

Python Threading

Title image for Python Thread Safety: Using a Lock and Other Techniques (Python Thread Safety: Using a Lock and Other Techniques)

Tutorial

Python Thread Safety: Using a Lock and Other Techniques

Learn about the issues that can occur when your code is run in a multithreaded environment. Then you'll explore the various synchronization primitives available in Python's threading module, such as locks, which help you make your code safe.

Title image for Getting Started With Async Features in Python (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.

Title image for Hands-On Python 3 Concurrency With the asyncio Module (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.

Title image for Bypassing the GIL for Parallel Processing in Python (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.

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