Asincrono
Il termine asincrono si riferisce a due o più oggetti o eventi che non esistono o non accadono contemporaneamente, ovvero non sono sincroni. Quando più cose correlate accadono senza che nessuna dipenda dal completamento di eventi precedenti, sono asincrone.
Nell’informatica, la parola “asincrono” è usata in due contesti principali, come spiegato di seguito.
In reti e comunicazioni
La comunicazione asincrona è un metodo di scambio di messaggi in cui l’invio, la ricezione e l’elaborazione di ciascun messaggio non dipendono dall’invio, dalla ricezione o dall’elaborazione di altri messaggi. Nella comunicazione asincrona, ciascuna parte riceve ed elabora i messaggi quando è conveniente o possibile farlo, anziché farlo immediatamente alla ricezione. Inoltre, i messaggi possono essere inviati senza attendere la conferma, con l’intesa che se si verifica un problema, il destinatario richiederà correzioni o gestirà la situazione in altro modo.
La posta elettronica è un tipo di comunicazione umana asincrona. Un mittente invia un’e-mail. Il destinatario legge l’e-mail e risponde (o meno) a suo piacimento, non necessariamente subito. Tutte le parti possono continuare a inviare e ricevere messaggi in qualsiasi momento. Le e-mail non devono essere programmate in una sequenza particolare.
Nel software asincrono, effettuare una richiesta, ad esempio a un server, non blocca altri processi in attesa della risposta. Il software può continuare a eseguire altre attività. Ad esempio, nelle API basate su promesse, gli oggetti Promise vengono creati per operazioni lunghe. Dopo il completamento dell’operazione, la promessa viene gestita. Con le promesse, il software non deve attendere il completamento dell’operazione.
Nella progettazione del software
La progettazione del software asincrono amplia il concetto creando codice che consente a un programma di richiedere che un’attività venga eseguita insieme all’attività originale (o alle attività), senza fermarsi ad attendere il completamento dell’attività. Quando l’attività secondaria è completata, l’attività originale viene notificata tramite un meccanismo concordato in modo che sappia che il lavoro è stato svolto e che il risultato, se presente, è disponibile.
Esistono numerose tecniche di programmazione per l’implementazione del software asincrono. Consulta l’articolo Asynchronous JavaScript per un’introduzione.