https://christianbernecker.medium.com/python-coding-make-for-loops-10x-faster-with-multithreading-63c3d5c5d9d9