here are the resources I used:
- https://www.youtube.com/playlist?list=PLeo1K3hjS3uub3PRhdoCTY8BxMKSW7RjN
- https://dev.to/nbosco/multithreading-vs-multiprocessing-in-python--63j
- https://tutorialedge.net/python/python-multithreading-tutorial/
- http://www.bogotobogo.com/python/Multithread/python_multithreading_creating_threads.php
- https://pymotw.com/2/multiprocessing/basics.html
- https://www.youtube.com/watch?v=icE6PR19C0Y