Python Concurrency

In this section, you’ll learn about Python concurrency including multithreading, multiprocessing, and asynchronous programming from scratch.

What you’ll learn:

  • Build high-performance & responsive Python applications using concurrency techniques.
  • Develop multithreaded applications using multithreading.
  • Develop a program that processes tasks in parallel.
  • Understand the single-threaded concurrency model.

Section 1. Multithreading #

In this section, you’ll have a good understanding of processes and threads and how to develop multithreaded programs.

Section 2. Thread Synchronization Techniques #

In this section, you’ll learn various techniques to synchronize between threads using a lock, event, thread-safe queue, and semaphore.

  • Lock – show you how to use a lock object to control access to a shared variable safely from multiple threads.
  • Event – learn how to use the threading Event to communicate between threads.
  • How to stop a thread – learn how to stop a child thread from the main thread.
  • Semaphore – explain the semaphore concept and how to use the Semaphore object to limit the number of threads that can access a shared resource simultaneously.

Section 3. Sharing Data Between Threads #

In this section, you’ll learn various techniques to share data between threads.

  • Thread-safe Queue – show you how to use a thread-safe queue to exchange data safely between multiple threads.

Section 4. Multiprocessing #

In this section, you’ll learn how to utilize the multiprocessing package to develop programs that run tasks in parallel.

  • Multiprocessing – show you how to run code in parallel using the multiprocessing module.
  • Process Pools – learn how to manage processes more efficiently by using a process pool.

Section 5. Async I/O #

In this section, you’ll how to utilize concurrency provided by the asyncio package to improve program performance, throughput, and responsiveness.

  • Understanding Event Loop – explain how the event loop works and how asyncio package uses the event loop to achieve a single-threaded concurrency model.
  • async/await – introduce to you coroutines and how to use the async and await keywords to define and pause coroutines.
  • Creating tasks – learn how to create tasks and schedule them for running on the event loop.
  • Canceling tasks – show you how to cancel a task using the cancel() method of the Task object.
  • Canceling a task with a timeout – show you how to use the asyncio.wait_for() function to cancel a task with a timeout.
  • asyncio.wait() – learn about the asyncio.wait() function to run an iterable of awaitable objects concurrently.
  • Future – explain to you the Future object and awaitables.
  • Running multiple tasks concurrently with gather() – run a list of tasks concurrently with the asyncio.gather() function.
Was this tutorial helpful ?