threading_example.py

#! /usr/bin/python3
# ===============================================================================
# From: https://www.youtube.com/watch?v=IEEhzQoKtQU
# title: Python Threading Tutorial: Run Code Concurrently Using the Threading Module
#
# This in the most complicated of the examples.
# Also demonstrates using concurrent (multi cores)
#
# ===============================================================================

##import concurrent.futures

import threading
import time

start = time.perf_counter()

def do_something(seconds):
    print(f'Sleeping {seconds} second(s)...')
    time.sleep(seconds)
    print('Done Sleeping...')

threads = []

for _ in range(10):
    t = threading.Thread(target=do_something, args=[1.5])
    t. start()
    threads.append(t)

for thread in threads:
    thread.join()

finish = time.perf_counter()

print(f'Finished in {round(finish-start,2)} seconds()')