CPU-bound tasks are not a good fit for Python threads, due to the Global Interpreter Lock (GIL). Parallel computations in Python should be done in multiple processes, not threads.
—Eli Bendersky
See https://docs.python.org/dev/glossary.html#term-global-interpreter-lock for GIL explanation.