класс работника надзора
Обительщик имеет настройку работника. Некоторые возможные значения: < /p>
sync < /li>
gthread < /li>
Gevent < /li >
< /ul>
Определения из хорошего блога Луиса Сена < /p>
sync < /strong>
Это работник по умолчанию сорт. Каждый процесс будет обрабатывать 1 запрос за раз, и вы можете использовать параметр -W для установки работников. Это будет зависеть от того, как работает ваше приложение. В этом случае приложение Python загружается один раз на одного работника, и каждый из потоков, порожденных тем же работником , но это все еще полезно, когда у вас происходит блокировка ввода/вывода. Это позволит вам справиться с большей параллелизмом, не слишком сильно увеличивая память. Псевдо потоки »и основаны на Greenlet. .
Даже с повышением асинхронных рамок (FASTAPI, SANIC и т. Д.) Это все еще актуально сегодня, поскольку позволяет вам оптимизировать для ввода -вывода без лишней сложности кода. /p>
То, как им удается сделать это, «Monkey Patching» вашего кода, в основном заменяя блокирующие детали совместимыми кооперативными аналогами из пакета Gevent. < /p>
it Использует Epoll, Kqueue или Libevent для очень масштабируемого неблокирующего ввода-вывода. Coroutines гарантируйте, что разработчик использует стиль блокировки программирования, аналогичный потоке, но обеспечивает преимущества не блокирующего ввода-вывода. Веб -приложение Django/Flask/etc, поскольку большую часть времени большая часть задержки поступает из работы, связанной с вводом/выводом.
При использовании потоков работников Gevent не настраивается. Настройки документации - потоки говорят, что потоки имеют отношение только к работникам GTHREAD. Итак, с Gevent у нас есть только рабочие. И каждый работник является отдельным процессом операционной системы, насколько я знаю. И подсчет работников составляет от 8 до 16 для 4 -основной машины. Так на самом деле нет никаких потоков? Если нет никаких потоков, как работники Gevent получают результаты. Должны быть псевдо -потоки, которые должны быть выполнены одновременно. В то время как какой -то псевдотех изготавливается, он должен быть обнаружен, а другой псевдотех должен быть выполнен. Так где же это еще одна псевдо -нить? Это другие рабочие процессы или буррон, создает некоторые псевдот в рабочем процессе?
Подробнее здесь: https://stackoverflow.com/questions/693 ... mance-gain