Ответы на каждый из пунктов.
1 - WSGIDaemonProcess / WSGIProcessGroup указывают, что mod_wsgi должен быть разветвлен как отдельный процесс для запуска приложения WSGI. Это только разветвление, а не разветвление / exec, поэтому mod_wsgi все еще контролирует его. Когда обнаруживается, что URL-адрес сопоставляется с приложением WSGI, работающим в режиме демона, код mod_wsgi в дочерних рабочих процессах Apache передает данные запроса через процесс режима демона, где код mod_wsgi там читает его и вызывает ваш WSGI. применение.
2 - Да, несколько запросов могут работать одновременно и одновременно хотеть изменить глобальные данные модуля.
3 - Поскольку время выполнения внутри самого Python, то нет, они не работают строго параллельно, поскольку глобальная блокировка интерпретатора означает, что только один поток может выполнять код Python одновременно. Интерпретатор Python будет периодически выбирать, какой поток запускается. Если один из потоков вызывает код C и освобождает GIL, то, по крайней мере, в течение времени, когда поток находится в этом состоянии, он может работать параллельно с другими потоками, работающими в коде Python или C. Например, когда вызовы передаются в слой Apache / mod_wsgi для обратной записи данных ответа, GIL освобождается. Это означает, что фактическая обратная запись данных ответов на нижних уровнях не препятствует запуску других потоков.