Почему я не должен использовать async (совокупный) io

StackOverflow https://stackoverflow.com/questions/4140656

Вопрос

Я пишу сейчас, пишу несколько почетных кодов (в Python, используя Gevent), и я использую Nginx в качестве веб-сервера, и я чувствую, что оба великолепны. Мне сказали, что есть компромисс с событиями, но не смогла его увидеть. Может кто-нибудь, пожалуйста, пролится немного света?

Джеймс

Это было полезно?

Решение

Самая большая проблема заключается в том, что без потоков блока для одного клиента приведет к блоку для всех клиентов. Например, если один клиент запрашивает ресурс (файл на диске, память из шагной системы и т. Д.), Для этого требуется ОС для заблокировки запроса, то все клиенты должны будут дождаться. Многоподобный сервер может блокировать только один клиент и продолжать служить другим.

Тем не менее, если вышеупомянутый сценарий вряд ли (то есть все клиенты будут запрашивать те же ресурсы), то управляемый событиями - это путь.

Другие советы

Единственная сложность совокупных программиров - это то, что вы не должны блокировать, когда-либо. Это может быть трудно добиться, если вы используете некоторые библиотеки, которые были разработаны с учетом потоков. Если вы не контролируете эти библиотеки, вилкой () + сообщение IPC - это путь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top