GIL explained
What is the GIL and how does it affect multithreading vs multiprocessing?
Answers use simple, clear English.
Quick interview answer
The Global Interpreter Lock allows only one thread to execute Python bytecode at a time in CPython. CPU-bound threads won't use multiple cores; use multiprocessing, native extensions releasing the GIL, or alternative runtimes. I/O-bound threads still help because the GIL is released during I/O waits.
Detailed answer
The Global Interpreter Lock allows only one thread to execute Python bytecode at a time in CPython. CPU-bound threads won't use multiple cores; use multiprocessing, native extensions releasing the GIL, or alternative runtimes. I/O-bound threads still help because the GIL is released during I/O waits. asyncio is often better for high-concurrency I/O.