Can an Interpreted Language Really Do Multithreading?

Python, the GIL, and the myths that surround it

The Setup: It works, but it's "fake"?

I built an async worker. Its job was to pull data from a bunch of network devices, and running it sequentially was painfully slow — so I parallelized it with threads. The difference was immediate. Several times faster. Feeling pretty good about myself, I mentioned it to a colleague, and here's what came back:

"Python multithreading is fake. Because of the GIL, it all runs on a single core and just pretends to be parallel. If you want real parallelism, you need something like Celery."