Fabian Schindler
Concurrency in Python
#1about 4 minutes
Defining concurrency, parallelism, and multitasking
Key terms like concurrency, parallelism, cooperative multitasking, and preemptive multitasking are defined to build a foundational understanding.
#2about 3 minutes
Weighing the benefits and complexity of multitasking
Multitasking can improve performance and reduce costs, but it introduces complexity, non-determinism, and is limited by Amdahl's Law.
#3about 5 minutes
Understanding the differences between processes and threads
Processes are isolated with higher overhead, while threads are lightweight and share memory, with examples using Python's `threading` and `multiprocessing` modules.
#4about 1 minute
Simplifying concurrency with executor pools
The `concurrent.futures` module provides a high-level interface with `ThreadPoolExecutor` and `ProcessPoolExecutor` to easily apply a function to multiple data items.
#5about 5 minutes
How to prevent data corruption with locks
Race conditions occur when multiple threads access shared data simultaneously, which can be prevented by using a mutex or `threading.Lock` to ensure exclusive access.
#6about 2 minutes
How Python's global interpreter lock affects multithreading
The GIL is a mutex that protects access to Python objects, preventing multiple native threads from executing Python bytecodes at the same time and impacting CPU-bound tasks.
#7about 4 minutes
Overcoming thread limitations with event-driven programming
The C10k problem highlights the inefficiency of a thread-per-client model, leading to event-driven solutions like asynchronous programming to handle many concurrent connections.
#8about 5 minutes
Writing concurrent code with async and await
Python's `async` and `await` keywords enable cooperative multitasking, allowing you to run many tasks concurrently on a single thread using an event loop from the `asyncio` module.
#9about 2 minutes
Building high-performance web services with Starlette
The Starlette web framework demonstrates how `asyncio` can be used to build highly concurrent web servers capable of handling many clients efficiently.
#10about 2 minutes
Q&A on Python's speed and choosing thread counts
Answers to common questions address Python's perceived slowness by working around limitations like the GIL and explain that benchmarking is key to finding the optimal number of threads.
Related jobs
Jobs that call for the skills explored in this talk.
envelio
Köln, Germany
Remote
Senior
Python
Software Architecture
Matching moments
01:32 MIN
Organizing a developer conference for 15,000 attendees
Cat Herding with Lions and Tigers - Christian Heilmann
02:54 MIN
Automating video post-production with local scripts
Cat Herding with Lions and Tigers - Christian Heilmann
04:57 MIN
Increasing the value of talk recordings post-event
Cat Herding with Lions and Tigers - Christian Heilmann
03:17 MIN
Selecting strategic partners and essential event tools
Cat Herding with Lions and Tigers - Christian Heilmann
04:49 MIN
Using content channels to build an event community
Cat Herding with Lions and Tigers - Christian Heilmann
02:44 MIN
Rapid-fire thoughts on the future of work
What 2025 Taught Us: A Year-End Special with Hung Lee
03:28 MIN
Why corporate AI adoption lags behind the hype
What 2025 Taught Us: A Year-End Special with Hung Lee
03:39 MIN
Breaking down silos between HR, tech, and business
What 2025 Taught Us: A Year-End Special with Hung Lee
Featured Partners
Related Videos
Accelerating Python on GPUs
Paul Graham
Concurrency with Go
Frank Müller
The Eventloop in JavaScript - How does it work?
Christian Woerz
Introduction and pitfalls of Java's new concurrency model
David Vlijmincx
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
CUDA in Python
Andy Terrel
Coroutine explained yet again 60 years later
Mikhail Maslo
Devouring APIs with Python
Shweta Palande
Related Articles
View all articles

.gif?w=240&auto=compress,format)

From learning to earning
Jobs that call for the skills explored in this talk.


UNITY AG
Lippstadt, Germany
Azure
Julia
Python
FastAPI
Amazon Web Services (AWS)


Client Server
Charing Cross, United Kingdom
Remote
£60-70K
CSS
HTML
MySQL
+6


knowmad Mood
A Coruña, Spain
Remote
GIT
DevOps
Python
Docker
+5

knowmad Mood
Gijón, Spain
Remote
GIT
DevOps
Python
Docker
+5

Crossing Hurdles
Glasgow, United Kingdom
Remote
£166-249K
Python
