IO asíncrono de Tornado, cómo entender las conexiones largas ¿Cuáles son las aplicaciones prácticas de las conexiones largas?
La combinación de acceso con bloqueo y sin bloqueo y la función de encuesta
puede resolver mejor la lectura y escritura del dispositivo, pero será más conveniente si hay una notificación asincrónica. La notificación asincrónica significa: una vez que el dispositivo está listo, la aplicación recibe una notificación activa, por lo que la aplicación no necesita consultar el estado del dispositivo en absoluto. Esto es muy similar al concepto de "interrupción" en el hardware, que es más preciso. El nombre es: E/S asíncrona controlada por señal (SIGIO). Puede utilizar la función signal() para configurar la función de procesamiento de señal correspondiente.
Hablemos de conexiones largas
Las conexiones cortas significan que cuando las partes comunicantes intercambian datos, se establece una conexión después de enviar los datos, la conexión se desconecta, es decir, solo cada conexión Completa el envío de un negocio.
Las conexiones persistentes se utilizan principalmente para operaciones frecuentes y comunicaciones punto a punto, y la cantidad de conexiones no puede ser demasiada. Cada conexión TCP requiere un protocolo de enlace de tres pasos, lo que lleva tiempo. Si cada operación es una conexión corta, la velocidad de procesamiento se reducirá mucho si se opera nuevamente, por lo que no se desconectará después. En cada operación, estará bien enviar directamente el paquete de datos durante el siguiente procesamiento sin establecer una conexión TCP. Por ejemplo: las conexiones largas se utilizan para conexiones de bases de datos. La comunicación frecuente con conexiones cortas provocará errores de socket y la creación frecuente de sockets también es un desperdicio de recursos.
Los servicios HTTP, como los sitios web WEB, generalmente utilizan enlaces cortos, porque las conexiones largas consumirán ciertos recursos para el servidor y, al igual que los sitios web WEB, miles o incluso cientos de millones de clientes con frecuencia. El uso de una conexión corta ahorrará algunos recursos. Si utiliza una conexión larga y hay miles de usuarios al mismo tiempo, es posible que cada usuario ocupe una conexión. Por lo tanto, la cantidad de concurrencia es grande, pero cada usuario necesita usar una conexión corta si no necesita operaciones frecuentes.
En resumen, la elección de una conexión larga o una conexión corta depende de la situación.