Frage

Ich verstehe, dass sie in irgendeiner Art und Weise arbeiten, die sich von machen einen Thread pro Benutzer. Wie genau funktioniert das?

(Does 'non-blocking' etwas damit zu tun?)

War es hilfreich?

Lösung

Von der Twisted-Dokumentation:

  

Der Reaktor ist der Kern der Ereignisschleife innerhalb Verdreht - die Schleife, welche Laufwerke Anwendungen Verdreht werden. Die Ereignis-Schleife ist ein Programmierkonstrukt, das darauf wartet, und Versendungen Ereignisse oder Nachrichten in einem Programm. Es funktioniert durch einen internen oder externen „Ereignisanbieter“ zu nennen, die in der Regel blockiert, bis ein Ereignis eingetroffen ist, und ruft dann die entsprechenden Event-Handler ( „löst das Ereignis“). Der Reaktor enthält grundlegende Schnittstellen zu einer Reihe von Dienstleistungen, einschließlich Netzwerk-Kommunikation, Threading und Ereignisses Dispatching.

Siehe auch http://en.wikipedia.org/wiki/Event_loop

Non-Blocking bezieht sich, dass, wenn Sie Griff Ereignisse wollen auf mehr als eine Buchse (oder, allgemeiner, von mehr als zwei von jeder Art von Ereignisquelle) in einem einzigen Thread, Sie verwenden nicht blockiert Operationen, diese Ereignisse zu behandeln. Wenn Sie eine Blockierung in der ersten Fassung lesen tun, dann werden Sie nicht in der Lage sein, von der zweiten Fassung zu lesen, bis einige Bytes auf dem ersten ankommen. Dies ist nicht sehr gut, da kann man nicht wirklich wissen, welcher Buchse Bytes haben wird zuerst zu lesen. Stattdessen Sie so etwas wie select (beschrieben im Detail auf der Seite oben verlinkten Wikipedia) nutzen, Ihnen zu sagen, welchen Buchse Bytes hat und sie dann von diesem Sockel lesen, ohne zu blockieren.

Dies alles bedeutet, dass Sie Ereignisse aus einer beliebigen Anzahl von Ereignisquellen, eine nach der anderen bedienen kann, was das Aussehen sie alle gleichzeitig zu verarbeiten.

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