As title.
See this django community threads, it talks about thread local storage and async. link
In a full async environment, everything is running in the same thread. It’s not “one thread per connection”. this sentence explains it I think.
it works currently because gunicorn backend ultimately runs a few threads, and django’s behaviour is to use each thread to handle each request, thus thread local storage works.
see also safe to use thread local storage