Case examples
In this final part of the chapter, I am going to show you three case examples in which we'll see how to do the same thing by employing different approaches (single-thread, multithread, and multiprocess). Finally, I'll dedicate a few words to asyncio
, a module that introduces yet another way of doing asynchronous programming in Python.
Example one – concurrent mergesort
The first example will revolve around the mergesort algorithm. This sorting algorithm is based on the divide et impera (divide and conquer) design paradigm. The way it works is very simple. You have a list of numbers you want to sort. The first step is to divide the list into two parts, sort them, and merge the results back into one sorted list. Let me give you a simple example with six numbers. Imagine we have a list, v=[8, 5, 3, 9, 0, 2]
. The first step would be to divide the list, v
, into two sublists of three numbers: v1=[8, 5, 3]
and v2=[9, 0, 2]
. Then we sort v1
and v2
by recursively calling mergesort on...