Disclosure: when you buy through links on our site, we may earn an affiliate commission.

Concurrent and Parallel Programming in Python

Speed up your programs with concurrency
(38 reviews)
588 students
Created by


CourseMarks Score®







Platform: Udemy
Video: 6h 7m
Language: English
Next start: On Demand

Table of contents


In this course you’ll learn how to create multi-threaded, asynchronous, and multi-process programs in Python, so that you can make your programs run even faster.

In applications communicating with other resources, a lot of time is spent just waiting for information to be passed from one place to another. You’ll learn how to use multi-threading as well as asynchronous programming to speed up programs that are heavily bottlenecked by IO operations.

We’ll go through an introduction first of where potential speed bottlenecks come from as well as how we could solve these issues, and then we’ll dive directly into the technical content and build out a multi-threaded program together that grabs data from the internet, parses, and saves it into a local database.

Other programs may be more heavily affected by CPU limitations. We’ll also learn how to implement multiprocessing in Python, the library that lets us use multiple CPUs in our Python code. With this we’ll be able to spread our workload over all the cores available on the machine we’re using.

Finally, we’ll also look to combine both elements, taking a look at how we can use multiprocessing together with asynchronous programming to get the most benefit for yourself, maximizing your use of CPU resources and minimizing time spent siting idle waiting for IO response.

You can find the lecture code in the GitHub repository linked in the first lesson.

You will learn

✓ How to use concurrency and parallelism in Python
✓ How to write multi-threaded programs
✓ How to write multi-process programs
✓ How to write asynchronous programs


• Basic familiarity with Python

This course is for

• Python developers that want to make their programs faster by adding concurrency
Data Engineer
Hey there! My name is Max.

And I’m a data loving, Dungeons & Dragons playing, Python programming dude.

I’ve got a Bachelors in Physics and a Masters in Astrophysics.

For the past 5 years, I’ve been working in the field of data – starting as a Data Scientist then becoming and working as a Data Engineer.

I stumbled into the world of programming and data completely by accident — but the first time I coded a simple blackjack program in Python is the first time it really “clicked” for me.

They say you know you truly love an activity if you reach a state of “flow”, and that is what programming does for me. Everything fades away and all that exists is me, some good tunes, those little lines of white text, and the agitating company of a bug or two or five.

If I’m honest, these 3 decisions changed the path of my career (and probably my life) entirely:

1. Deciding to finally learn Python at university, after 2 failed attempts in high school
2. Tentatively venturing into the data world, which started with simply googling “what does a data scientist do”
3. Committing to a data engineer pivot by learning about big data tools and infrastructure design to build scalable systems and pipelines

I could talk endlessly about data infrastructure, big data pipelines and my relentless and eternally raging fire for Python.

Going into data gave me endless passion for my work & completely changed the trajectory of my life.

I can’t wait to help you find and do the same.
Platform: Udemy
Video: 6h 7m
Language: English
Next start: On Demand

Students are also interested in