Async Techniques and Examples in Python

5h 2m 11s
English
Paid
April 24, 2024

Python's async and parallel programming support is highly underrated. In this course, you will learn the entire spectrum of Python's parallel APIs. We will start with covering the new and powerful async and await keywords along with the underpinning module: asyncio. Then we'll move on to Python's threads for parallelizing older operations and multiprocessing for CPU bound operations. We'll close out the course with a host of additional async topics such as async Flask, task coordination, thread safety, and C-based parallelism with Cython.

More

Source code and course GitHub repository

 github.com/talkpython/async-techniques-python-course

What's this course about and how is it different?

This is the definitive course on parallel programming in Python. It covers the tried and true foundational concepts such as threads and multiprocessing as well as the most modern async features based on Python 3.7+ with async and await.

In addition to the core concepts and APIs for concurrent programming, you will learn best practices and how to choose between the various APIs as well as how to use them together for the biggest advantage.

In this course, you will:

  • See how concurrency allows improved performance and scalability
  • Build async-capable code with the new async and await keywords
  • Add asynchrony to your app without additional threads or processes
  • Work with multiple threads to run I/O bound work in Python
  • Use locks and thread safety mechanisms to protect shared data
  • Recognize a dead-lock and see how to prevent them in Python threads
  • Take full advantage of multicore CPUs with multiprocessing
  • Unify the thread and process APIs with execution pools
  • Add massive speedups with Cython and Python threads
  • Create async view methods in Flask web apps
  • And lots more

Who is this course for?

Anyone who would like to write Python code that does more, scales better, and takes better advantage of modern, multicore CPUs. Whether you're a web developer or data scientists, you will find a host of techniques to do more faster.

Watch Online Async Techniques and Examples in Python

Join premium to watch
Go to premium
# Title Duration
1 Course introduction 01:27
2 Async for taking full advantage of modern CPUs 01:52
3 Topics covered 04:53
4 Student prerequisites 00:45
5 Meet your instructor 00:49
6 Video player: A quick feature tour 02:05
7 Do you have Python 3? 01:40
8 Getting Python 3 00:39
9 Recommended text editor 00:54
10 Hardware requirements 01:14
11 Get the source code 01:02
12 Async for computational speed 03:43
13 Demo: Why you need async for speed 03:55
14 An upper bound for async speed improvement 03:53
15 Async for scalability 01:50
16 Concept: Visualizing a synchronous request 03:34
17 Concept: Visualizing an asynchronous request 02:15
18 Python's async landscape 04:25
19 Why threads don't perform in Python 02:53
20 Python async landscape: asyncio 01:16
21 I/O-driven concurrency 03:51
22 Demo: Understanding basic generators 09:05
23 Demo: The producer-consumer app 03:08
24 Demo: Make the producer-consumer async 05:36
25 Demo: Make the producer-consumer async (methods) 07:17
26 Concept: asyncio 01:18
27 Performance improvements of producer consumer with asyncio 01:47
28 Faster asyncio loops with uvloop 04:38
29 Let's do some real work 01:07
30 Synchronous web scraping 03:09
31 async web scraping 09:17
32 Concept: async web scraping 01:25
33 Other async-enabled libraries 03:42
34 Python async landscape: Threads 01:07
35 Visual of thread execution 01:13
36 How to choose between asyncio and threads 02:34
37 Demo: hello threads 05:00
38 Demo: Waiting on more than one thread 03:53
39 Demo: Something productive with threads 03:10
40 Concept: Thread API 01:42
41 Concept: Tips for multiple threads 00:42
42 Cancelling threads with user input 06:02
43 Concept: Timeouts 01:22
44 Demo: Attempting to leverage multiple cores with threads 05:46
45 Python async landscape: Thread Safety landscape 00:47
46 Threads are dangerous 01:28
47 Visualizing the need for thread safety 03:35
48 Demo: An unsafe bank 05:05
49 Demo: Make the bank safe (global) 04:35
50 Demo: A missed lock in our bank (global) 01:45
51 Demo: Make the bank safe (fine-grained) 05:50
52 Demo: Breaking a deadlock 03:45
53 Concept: Basic thread safety 01:43
54 Python async landscape: multiprocessing 01:03
55 Introduction to scaling CPU-bound operations 01:52
56 Demo: Scaling CPU-bound operations with multiprocessing 04:56
57 Concept: Scaling CPU-bound operations 01:22
58 Multiprocessing return values 02:19
59 Concept: Return values 01:00
60 Python async landscape: Execution pools 01:51
61 Demo: Executor app introduction 02:22
62 Demo: Executor app (threaded-edition) 06:45
63 Demo: Executor app (process-edition) 01:47
64 Concept: Execution pools 01:43
65 Python async landscape: asyncio derivatives 01:32
66 Why do we need more libraries? 04:32
67 Introducing unsync 02:22
68 Demo: unsync app introduction 04:22
69 Demo: unsync app for mixed-mode parallelism 05:55
70 Concept: Mixed-mode parallelism with unsync 03:11
71 Introducing Trio 01:11
72 Demo: Starter code for Trio app 01:02
73 Demo: Converting from asyncio to Trio 04:54
74 Demo: Cancellation with Trio 01:57
75 Concept: Trio nurseries 01:17
76 The trio-async package 00:56
77 Python async landscape: Async web 01:21
78 Review: Request latency again 01:32
79 Demo: Introducing our Flask API 05:02
80 There is no async support for Flask 01:51
81 Demo: Introducing Quart for async Flask 01:06
82 Demo: Converting from Flask to Quart 01:30
83 Demo: Making our API async 04:39
84 Demo: An async weather endpoint 01:34
85 Concept: Flask to Quart 02:37
86 Load testing web apps with wrk 02:01
87 A note about rate limiting with external services 03:17
88 Performance results 03:33
89 Remember to run on an ASGI server 01:42
90 Python async landscape: Cython 01:32
91 C and Python are friends 01:45
92 Why Cython 03:00
93 Cython syntax compared 02:27
94 Demo: Hello Cython 05:37
95 Concept: Getting started with Cython 01:12
96 Demo: Fast threading with cython (app review) 02:47
97 Demo: Fast threading with Cython (hotspot) 01:40
98 Demo: Fast threading with Cython (conversion) 02:20
99 Demo: Fast threading with Cython (GIL-less) 04:06
100 Demo: Fast threading with Cython (int overflow issues) 02:53
101 Concept: Cython's nogil 01:25
102 The finish line 00:35
103 Review: Why async? 02:01
104 Review: asyncio 01:04
105 Review: Threads 01:19
106 Review: Thread safety 02:17
107 Review: multiprocessing 02:14
108 Review: Execution pools 01:45
109 Review: Mixed-mode parallelism 01:59
110 Review: Coordination with Trio 01:35
111 Review: Async Flask 01:18
112 Review: Cython 01:39
113 Thanks and goodbye 00:17

Similar courses to Async Techniques and Examples in Python

PyTorch for Deep Learning with Python Bootcamp

PyTorch for Deep Learning with Python Bootcamp

Duration 17 hours 2 minutes 14 seconds
Python and Django Full Stack Web Developer Bootcamp

Python and Django Full Stack Web Developer Bootcamp

Duration 31 hours 54 minutes 39 seconds
Developing LLM App Frontends with Streamlit

Developing LLM App Frontends with Streamlit

Duration 1 hour 43 minutes 52 seconds
Python Data Analysis & Visualization Masterclass

Python Data Analysis & Visualization Masterclass

Duration 20 hours 17 minutes 23 seconds
The Automation Bootcamp: Zero to Mastery

The Automation Bootcamp: Zero to Mastery

Duration 22 hours 39 minutes 15 seconds
Spark and Python for Big Data with PySpark

Spark and Python for Big Data with PySpark

Duration 10 hours 35 minutes 43 seconds
Python Programming for Developers

Python Programming for Developers

Duration 11 hours 14 minutes 25 seconds
The Software Architect Mindset (COMPLETE)

The Software Architect Mindset (COMPLETE)

Duration 12 hours 6 minutes 39 seconds
Python 3: Deep Dive (Part 4 - OOP)

Python 3: Deep Dive (Part 4 - OOP)

Duration 35 hours 15 minutes 32 seconds