https://kimlud.co/automation/python-threading-and-subprocesses-explained/
Python threading and subprocesses explained