Django не контролирует нитки (ну ... может быть, на сервере разработки, но это довольно просто), но uWSGI есть. uWSGI будет порождать некоторые потоки, в зависимости от его конфигурации, и в каждом потоке он будет запускать обработку запросов django.
Нерестовые нити могут быть динамическими или статическими, они могут быть строго 4 нити или динамические от 2 до 12 в зависимости от нагрузки.
И нет, ни одного нового потока для каждого запроса нет, потому что это позволит кому-то убить ваш сервер, сделав с ним много параллельных подключений, потому что он будет порождать столько потоков, что ни один сервер не возьмет его.
Запросы обрабатываются один за другим в каждом потоке, а основной процесс uWSGI выполняет циклические запросы между потоками. Если запросов больше, чем потоков, некоторые из них будут ждать до тех пор, пока другие не будут завершены.
В uWSGI есть также рабочие независимые процессы, которые могут создавать собственные потоки, поэтому загрузка может быть лучше распределена.
Также вы можете иметь несколько серверов uWSGI и сообщить HTTP-серверу (apache, proxy) для распространения запросов между ними. Таким образом, вы можете даже обслуживать свои экземпляры uWSGI на разных компьютерах, и все это будет выглядеть снаружи как один большой сервер.
зависит от того, какой сервер приложений вы используете. – levi
Предположим, что uWSGI –