Python Concurrent Programming: Introduction to Concurrent Programming

Expected Duration
Lesson Objectives
Course Number
Expertise Level


Explore the general theory of concurrent programming, and examine how to have multiple tasks active at any given point in time. This 14-video course offers an in-depth examination of concurrent programming by using the Python programming language. First, learners will examine the two main forms of concurrent programming, multithreading and multiprocessing, and examine their differences and use cases. Next, you will examine executing multitask sequentially, and with multithreading to save time, and how to use multiprocessing to manage a collection of tasks efficiently. Continue by exploring challenges that programmers encounter when adopting concurrency such as synchronization issues and deadlocks, and how to address these issues. You will examine issues that arise when writing concurrent code, and you will learn how to fix these by using the built-in objects available in Python. Finally, this course examines several of the objects available in the Python language such as queues and pools, which simplify the task of building multithreading and multiprocessing applications.

Expected Duration (hours)

Lesson Objectives

Python Concurrent Programming: Introduction to Concurrent Programming

  • discover the key concepts covered in this course
  • recognize what sequential execution is and what its limitations are
  • describe multithreading and compare its performance with a sequential execution of tasks
  • identify the specific use cases for multithreading
  • summarize multiprocessing and contrast it with multithreading
  • describe the implementation of threads and processes in the Python language
  • recognize what a race condition is and when it can occur with concurrent programming
  • outline how locks can help concurrent tasks synchronize their actions on shared resources
  • summarize how semaphores can restrict the number of concurrent tasks accessing a shared resource
  • identify the use cases for event and condition objects in Python and distinguish between the two
  • recognize when a deadlock can occur in an application and the actions you can take to avoid it
  • enumerate the built-in data structures available in Python for concurrent programming
  • outline how pools of threads and processes can optimize concurrency in your application
  • recall the different synchronization mechanisms in Python and the conditions necessary for deadlocks
  • Course Number:

    Expertise Level