289 votes

Quelle est la différence entre la simultanéité, le parallélisme et les méthodes asynchrones?

La simultanéité consiste à exécuter deux tâches en parallèle sur des threads distincts. Cependant, les méthodes asynchrones s'exécutent en parallèle mais sur le même 1 thread. Comment cela est-il réalisé? Aussi, qu'en est-il du parellelism?

Quelles sont les différences entre ces 3 concepts?

Merci

210voto

Lazarus Points 17526

Concurrente et parallèle sont en fait le même principe, comme vous l'avez deviner, les deux sont liés à des tâches s'exécute simultanément mais je dirais que les tâches parallèles doivent être vraiment multitâche, exécuté "en même temps" alors que les concurrentes pourraient dire que les tâches sont partage le thread d'exécution tout en apparaissant à être exécutés en parallèle.

Méthodes asynchrones ne sont pas directement liées à ces deux concepts, l'asynchronie est utilisée pour l'impression de concourantes ou parallèles tâches mais efficace, une méthode asynchrone appel est normalement utilisée pour un processus qui doit faire le travail de l'application en cours et nous ne voulons pas attendre et de bloquer notre application en attente de la réponse.

Par exemple, la récupération de données à partir d'une base de données peut prendre du temps mais nous ne voulons pas bloquer notre INTERFACE utilisateur d'attente pour les données. Le asynch appel est un appel de retour de référence et renvoie exécution revenir à votre code dès que la demande a été passée avec le système distant. Votre INTERFACE utilisateur peut continuer à répondre à l'utilisateur, alors que le système distant n'quel que soit le traitement est nécessaire, une fois qu'il retourne les données de votre méthode de rappel alors que la méthode de mise à jour de l'INTERFACE utilisateur (ou à la main, hors que la mise à jour), selon le cas.

Du point de vue Utilisateur, il apparaît comme le multitâche, mais il peut ne pas l'être.


MODIFIER

Il est probablement utile d'ajouter que dans de nombreuses implémentations asynchrone appel de méthode à cause d'un thread pour être lancé, mais il n'est pas essentiel, cela dépend vraiment de l'opération exécutée et dont la réponse peut être notifié à l'arrière du système.

21voto

Tout le monde a du mal à s’associer de manière asynchrone au parallélisme ou à la concurrence, car asynchrone n’est pas un antonyme parallèle ou simultané. C'est un antonyme de synchrone. Ce qui indique simplement si quelque chose, dans ce cas les threads, sera synchronisé avec autre chose, dans ce cas un autre thread.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X