Sto cercando di capire cos'è un loop di eventi. Spesso la spiegazione è che in un ciclo di eventi, fai qualcosa fino a quando non ti viene comunicato che si è verificato un evento. Quindi gestisci l'evento e continui a fare quello che stavi facendo prima.
Per mappare la definizione sopra con un esempio. Ho un server che "ascolta" in un loop di eventi e quando viene rilevata una connessione socket, i dati da esso vengono letti e visualizzati, dopodiché il server riprende / inizia ad ascoltare come prima.
Tuttavia, questo evento sta accadendo e noi riceviamo una notifica "proprio così" per me è molto da gestire. Puoi dire: "Non è 'proprio così' devi registrare un listener di eventi". Ma cos'è un ascoltatore di eventi ma una funzione che per qualche motivo non ritorna. È nel suo ciclo, in attesa di essere avvisato quando si verifica un evento? Il listener di eventi dovrebbe anche registrare un listener di eventi? Dove finisce?
Gli eventi sono una bella astrazione con cui lavorare, tuttavia solo un'astrazione. Credo che alla fine il polling sia inevitabile. Forse non lo stiamo facendo nel nostro codice, ma i livelli inferiori (l'implementazione del linguaggio di programmazione o il sistema operativo) lo stanno facendo per noi.
Fondamentalmente si riduce al seguente pseudo codice che è in esecuzione da qualche parte abbastanza in basso in modo da non provocare attese impegnate:
while(True):
do stuff
check if event has happened (poll)
do other stuff
Questa è la mia comprensione dell'intera idea e vorrei sapere se questo è corretto. Sono aperto nell'accettare che l'intera idea sia fondamentalmente sbagliata, nel qual caso vorrei la spiegazione corretta.
EventSource
facendo se non eseguire il polling dell'input da tastiera?