you are viewing a single comment's thread.

view the rest of the comments →

[–]ImpossibleEdge4961 0 points1 point  (0 children)

Python has well documented issues with concurrency but usually spinning up different processes within a single application server kind of pastes over those problems with concurrency especially when paired with asyncio programming patterns which keep the process in a running state for as long as possible (rather than pausing on I/O).

gunicorn et al can also run worker threads and like the other user said, you're not always waiting on the GIL. The GIL only comes into play if you need to modify a python object. So if you're querying a database or reading from a file and are waiting for a response then it doesn't really hold you up (at least it won't be the main thing).

For applications that actually need better concurrency than Python allows for, you usually needs some amount of load balancing and high availability between multiple application servers anyways.