La programmazione asincrona è una strategia per rinviare le operazioni con elevata latenza o bassa priorità, generalmente nel tentativo di migliorare le prestazioni, la reattività e / o la componibilità del software. Tali strategie sono di solito impiegate usando una combinazione di programmazione e callback guidate da eventi e, facoltativamente, facendo uso della concorrenza attraverso coroutine e / o thread.