Différence entre une exécution synchrone et asynchrone

La différence entre l’exécution synchrone et asynchrone peut être un peu déroutante au début. L’exécution du programme dans la plupart des langages de haut niveau est généralement très simple. Votre programme commence à la première ligne du code source et à chaque ligne de code exécutée séquentiellement.

Lors de l’exécution du programme synchrone, votre programme est exécuté ligne par ligne, une ligne à la fois. Chaque fois qu’une fonction est appelée, l’exécution du programme attend son retour avant de passer à la ligne de code suivante.
 
 
Ce mode d’exécution peut avoir des ramifications indésirables. Supposons qu’une fonction est appelée pour démarrer un processus prenant beaucoup de temps. Et si vous voulez arrêter le long processus? Avec l’exécution synchrone, votre programme est «bloqué», en attente de la fin du processus, sans issue.

L’exécution asynchrone évite ce goulot d’étranglement. Vous dites essentiellement: «Je sais que cet appel de fonction prendra beaucoup de temps, mais mon programme ne veut pas attendre pendant son exécution. »

En résumé, la synchronisation fait référence aux points de départ et d’arrivée de deux processus ou plus, PAS à leurs exécutions. Dans cet exemple, le noeud final du processus A est synchronisé avec le point de départ du processus B:

SYNCHRONE
    | -------- A -------- |
                          | -------- B -------- |

Les processus asynchrones, par contre, n’ont pas leurs points de départ et leurs points de terminaison synchronisés:

ASYNCHRONE
    | -------- A -------- |
          | -------- B -------- |

Lorsque le processus A chevauche le processus B, ils s’exécutent simultanément ou de manière synchrone.

 

Conclusion

Lorsque nous exécutons quelque chose de manière synchrone, nous attendons qu’il se termine avant de passer à une autre tâche. Lorsque nous exécutons quelque chose de manière asynchrone, vous pouvez passer à une autre tâche avant la fin.
 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *