Un modelo con hilos generará un nuevo hilo para cada solicitud. Esto significa que obtiene bastante sobrecarga en términos de computación y memoria. Un bucle de evento se ejecuta en un único hilo, lo que significa que no obtiene la sobrecarga.
El resultado de esto es que debe cambiar su modelo de programación. Debido a que todas estas cosas diferentes están sucediendo en el mismo hilo, no puedes bloquear. Esto significa que no puede esperar a que suceda algo porque eso bloquearía todo el hilo. En su lugar, define una devolución de llamada que se llama una vez que se completa la acción. Esto se conoce como E/S sin bloqueo.
Pseudo ejemplo para el bloqueo de I/O:
row = db_query('SELECT * FROM some_table');
print(row);
Pseudo ejemplo para no bloqueante I/O:
db_query('SELECT * FROM some_table', function (row) {
print(row);
});
Este ejemplo utiliza lambdas (funciones anónimas) como los que se utilizan en JavaScript todo el tiempo. JS hace un uso intensivo de los eventos, y eso es exactamente de lo que se trata la devolución de llamada. Una vez que se completa la acción, se activa un evento que desencadena la devolución de llamada. Esta es la razón por la cual a menudo se la conoce como modelo con vértigo o también modelo asíncrono.
La implementación de este modelo utiliza un ciclo que procesa y desencadena estos eventos. Es por eso que se llama cola de eventos o evento de ciclo.
Ejemplos prominentes de los marcos de colas de eventos incluyen:
¿Tal vez sea un poco más específico sobre lo que no entiende? – igorw