Frage

Ich schreibe jetzt einige evented Codes zu schreiben (in Python mit GEVENT) und ich verwende die nginx als Web-Server und ich fühle mich beide groß sind. Ich wurde gesagt, dass es ein Trade-off mit Ereignissen ist aber nicht in der Lage war, es zu sehen. Kann jemand bitte etwas Licht?

James

War es hilfreich?

Lösung

Größte Problem ist, dass ohne Gewinde, ein Block für einen Kunden einen Block für alle Client verursacht. Zum Beispiel, wenn ein Client eine Ressource anfordert (Datei auf der Festplatte, ausgelagerten-out-Speicher usw.), die das Betriebssystem benötigt den anfordernden Prozess zu blockieren, werden alle Kunden warten müssen. Ein Multi-Thread-Server kann nur den einen Client blockieren und weiterhin andere dienen.

sagte, dass, wenn das oben beschriebene Szenario ist unwahrscheinlich, (das heißt, alle Kunden die gleichen Ressourcen anfordern), dann ereignisgesteuert ist der Weg zu gehen.

Andere Tipps

Die einzige Schwierigkeit evented Programmierung ist, dass Sie nicht blockieren müssen, nie. Dies kann schwer zu erreichen sein, wenn Sie einige Bibliotheken verwenden, die mit einem Gewinde konzipiert wurden. Wenn Sie keine Kontrolle über diese Bibliotheken, eine Gabel () + Nachricht ipc ist der Weg zu gehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top