Update the title to clarify my question:
I was recently told that Python cannot truly thread and I find this confusing. Something to do with IO and CPU. Take for example I run multiple "Threads" to run multiple queries against an SQL Server all at the same time as to not take forever running them one after another. This is also done as to not block Tkinters mainloop as Tkinter is a single threaded library. At this point I feel like everything in python is single threaded...
So when bringing up this question I was told that Each thread can only occupy the CPU at once and the SQL server is handling the load. I understand that to a point but if this is the case then how is it that Tkinters mainloop is not blocked if the CPU can only work on one thread at a time then any time my other threads are doing stuff the mainloop should be blocked by this logic.
I know that cannot be true as the mainloop is running just fine and my GUI is not frozen so something else I am not understanding must be going on.
So my question is this:
How is this threading not blocking the tkinter mainloop if it is not parallel processing?
How exactly does Python "Thread" and what is the difference between IO and CPU in terms of threading?
This post has some information on my 2nd question. Still not what I want to know about the mainloop though.