Concurrent execution in Python
Let's start by exploring the basics of Python multithreading and multiprocessing with some simple examples.
Note
Keep in mind that several of the following examples will produce an output that depends on a particular run. When dealing with threads, things can get non-deterministic, as I mentioned earlier. So, if you experience different results, it is absolutely fine. You will probably notice that some of your results will vary from run to run too.
Starting a thread
First things first, let's start a thread:
# start.py import threading def sum_and_product(a, b): s, p = a + b, a * b print(f'{a}+{b}={s}, {a}*{b}={p}') t = threading.Thread( target=sum_and_product, name='SumProd', args=(3, 7) ) t.start()
After importing threading
, we define a function: sum_and_product
. This function calculates the sum and the product of two numbers, and prints the results. The interesting bit is after the function. We instantiate t
from threading.Thread
. This is our thread...