I am writing concurrent software and after all docs I've red I was sure that multithreading module (same as asyncio) is binded to single python process and single core where it is run.
But recently my colleague said that in some source (he can't find exact link) he found that operation system will automatically distribute threads spawned by python between available cores. I've heard that operating system may manage threads but can not find explicit information about python threads behavior and now I have doubts.
So, how does operating system control python threads?
For example, https://realpython.com/async-io-python/, or https://medium.com/contentsquare-engineering-blog/multithreading-vs-multiprocessing-in-python-ece023ad55a points that for multicore usage multiprocessing module is required.
Sorry, I have no snippets clearly describing problem