Pergunta

Eu entendo que eles funcionam de alguma forma distintos de fazer um tópico por usuário. Como exatamente isso funciona?

('Não bloqueio' tem algo a ver com isso?)

Foi útil?

Solução

Da documentação distorcida:

O reator é o núcleo do loop de evento no Twisted - o loop que aciona os aplicativos usando o Twisted. O loop de eventos é um construto de programação que aguarda e despacha eventos ou mensagens em um programa. Funciona chamando algum "provedor de eventos" interno ou externo, que geralmente bloqueia até que um evento chegue, e depois chama o manipulador de eventos relevante ("despacha o evento"). O reator fornece interfaces básicas a vários serviços, incluindo comunicações de rede, encadeamento e despacho de eventos.

Veja também http://en.wikipedia.org/wiki/Event_Loop

Não bloqueando relaciona -se nisso se você deseja lidar com eventos em mais de um soquete (ou, de maneira mais geral, de mais de dois tipos de fonte de evento) em um único tópico, você não pode usar bloqueando operações para lidar com esses eventos. Se você fizer uma leitura de bloqueio no primeiro soquete, não poderá ler do segundo soquete até que alguns bytes cheguem no primeiro. Isso não funciona muito bem, já que você realmente não pode saber qual soquete terá bytes para ler primeiro. Em vez disso, você usa algo como select (descrito em mais detalhes na página da Wikipedia vinculada acima) para dizer qual soquete tem bytes e depois lê -los a partir desse soquete sem bloquear.

Tudo isso significa que você pode atender a eventos de qualquer número de fontes de eventos, uma após a outra, dando a aparência de lidar com elas simultaneamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top