Estoy tratando de entender qué es un ciclo de eventos. A menudo, la explicación es que en un bucle de eventos, usted hace algo hasta que se le notifique que ha ocurrido un evento. Luego manejas el evento y continúas haciendo lo que estabas haciendo antes.
Para mapear la definición anterior con un ejemplo. Tengo un servidor que 'escucha' en un bucle de eventos, y cuando se detecta una conexión de socket, los datos se leen y se muestran, después de lo cual el servidor se reanuda / comienza a escuchar como lo hizo antes.
Sin embargo, este evento que está ocurriendo y que nos notifiquen 'así como así' es demasiado para mí. Puede decir: "No es" así ", debe registrar un oyente de eventos". Pero, ¿qué es un detector de eventos sino una función que por alguna razón no regresa? ¿Está en su propio ciclo, esperando ser notificado cuando ocurre un evento? ¿El oyente de eventos también debe registrar un oyente de eventos? Donde termina
Los eventos son una buena abstracción para trabajar, sin embargo, solo una abstracción. Creo que al final, las encuestas son inevitables. Quizás no lo estamos haciendo en nuestro código, pero los niveles inferiores (la implementación del lenguaje de programación o el sistema operativo) lo están haciendo por nosotros.
Básicamente se reduce al siguiente pseudocódigo que se está ejecutando en un lugar lo suficientemente bajo como para no generar una espera ocupada:
while(True):
do stuff
check if event has happened (poll)
do other stuff
Esta es mi comprensión de toda la idea, y me gustaría saber si esto es correcto. Estoy abierto a aceptar que toda la idea es fundamentalmente errónea, en cuyo caso me gustaría la explicación correcta.
EventSource
haciendo si no sondea la entrada del teclado?