Member-only story
Graphical exploration of concurrency in Python
Part 5: API request timing comparison — Sequential, Multiprocessing, Threading, and Async
A series exploring concurrency in Python to speed up data retrieval from remote APIs.
This article is part of a series: Graphical exploration of concurrency in Python. Part 1: Defining and timing an API function in Python.
In this series, we’ve used the example of retrieving 1334 Jira issues in batches of 50 from the Jira API to illustrate 4 different ways of coordinating the 27 separate network requests required.

The altair
plotting library was used throughout to generate charts showing the relative start and end times of each individual request (a link to the full code is available at the bottom of this article). Here’s the code to generate a chart of the relative time required to retrieve all 1334 issues in 27 requests after running each of the examples.