GIL basically enforces the Python interpreter to run on a single thread. Thus all Python applications, whether multithreaded or not, run on a single thread. The multithreaded ones are just executed with their threads hammering your computer’s processor in small turns.
Multithreading in Python is more than just meets the eye. For more details on Python’s GIL, I suggest watching this excellent talk by David Beazley.
And thanks for reading the article! I hope you found it valuable!