Maison >développement back-end >C++ >Comment Async-Await améliore-t-il la réactivité des applications sans utiliser de threads supplémentaires ?
Contrairement aux idées fausses communes, Async / Await ne crée pas de nouveaux threads. Au lieu de cela, il utilise un multitâche coopératif pour améliorer considérablement la réactivité des applications.
Comment fonctionne Async / Await
Le compilateur divise intelligemment les méthodes en utilisant Async / Await en deux sections:
await
, y compris l'initiation des opérations asynchrones. await
. Séquence d'exécution:
await
. L'opération asynchrone (par exemple, GetSomethingAsync()
) est appelée. Cette opération renvoie un résultat en attente (comme un Task
). SynchronizationContext
est informé de l'achèvement du signal de l'opération asynchrone. Le contrôle revient à la boucle de message, lui permettant de traiter d'autres tâches. SynchronizationContext
reçoit une notification. SynchronizationContext
ajoute un message à la file d'attente de boucle de message, déclenchant l'exécution de la partie 2. La boucle de message le traite, redémarrant la méthode du point après le await
. Réactivité améliorée
Alors que l'opération asynchrone est en attente, la boucle de message reste libre de gérer les mises à jour de l'entrée et de l'interface utilisateur, en maintenant l'application. Une fois terminé, la partie 2 met à jour l'état de l'application.
Considérations importantes:
SynchronizationContext
, pas la création de threads. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!