Pregunta

Yo entiendo que trabajan de alguna manera distinta de hacer un hilo por usuario. ¿Cómo funciona exactamente ese trabajo?

(Does no bloqueo "tiene algo que ver con eso?)

¿Fue útil?

Solución

A partir de la documentación Twisted:

  

El reactor es el núcleo del bucle caso, dentro de Twisted - el bucle que aplicaciones unidades que utilizan Twisted. El bucle de eventos es una construcción de programación que espera y distribuye eventos o mensajes en un programa. Esto funciona llamando un poco de "proveedor de eventos" internos o externos, que por lo general se bloquea hasta que ha llegado un evento, y luego llama al controlador de eventos relevantes ( "distribuye el evento"). El reactor proporciona interfaces básicas para una serie de servicios, incluyendo las comunicaciones de red, roscado, y despacho evento.

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

sin bloqueo se refiere, en que si quieres eventos mango en más de una toma (o, más en general, de más de dos de cualquier tipo de fuente de eventos) en un solo hilo, se no se puede utilizar bloqueo las operaciones para manejar estos eventos. Si haces un bloqueo de lectura en la primera toma, entonces no va a ser capaz de leer a partir del segundo zócalo hasta algunos bytes llegan a la primera. Esto no funciona muy bien, ya que realmente no se puede saber qué socket va a tener bytes a leer primero. En lugar de utilizar algo así como select (que se describe con más detalle en la página de Wikipedia vinculado anteriormente) que le diga lo que tiene zócalo bytes y luego leerlos desde ese socket sin bloquear.

Todo esto significa que se puede dar servicio eventos desde cualquier número de fuentes de eventos, uno tras otro, dando la apariencia de manejar todos al mismo tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top