2011-08-02 5 views
0

En quoi la programmation parallèle est-elle différente par rapport à la programmation asynchrone?Programmation parallèle par rapport à la programmation asynchrone

Je sais que la programmation asynchrone est utilisée pour travailler dans les threads/travailleurs de fond ou pour attendre que quelque chose se termine comme une E/S ( ).

* Les tâches en parallèle peuvent-elles également faire l'objet d'une tâche asynchrone?

* Est-ce que les tâches asynchrones peuvent être effectuées en parallèle?

Un peu déroutant pour moi.

Des exemples pour ce qui précède?

Répondre

2

La programmation multiprocessus, multiprocessus et asynchrone sont toutes des techniques de simultanéité permettant de réaliser plus d'une chose à la fois dans un même programme. Si vous n'avez qu'un seul processeur/machine, aucun d'entre eux n'est vraiment "parallèle". Ils se contentent tous de canaliser l'exécution d'un code afin que vous «ressentiez» qu'ils s'exécutent tous ensemble.

Les deux premiers s'appuient sur les tâches de commutation du processeur pour vous. Vous dites simplement à l'ordinateur que ce sont les choses que vous voulez faire et laissez-le décider comment allouer le temps et d'autres ressources aux différentes tâches. Nous allons passer en revue les différences entre les threads et les processus ici.

La programmation asynchrone signifie que votre application contrôle la commutation de ces tâches que vous voulez effectuer. Un exemple brut est quand il y a 2 canaux d'E/S que vous voulez lire/écrire. Votre application peut en quelque sorte envoyer des données à 1 jusqu'à 2 a des données disponibles sur elle. Lorsque c'est le cas, il va lire les données de 2 et ensuite reprendre l'envoi à 1, puis passer à envoyer des données à 2. L'idée est que vous attendez jusqu'à ce que certains événements doivent être desservis, puis basculer entre les événements selon disponibilité et besoin. Dans un certain sens, vous effectuez manuellement la planification des processus avec ce type d'applications. Un avantage est que la surcharge système associée à plusieurs processus/threads n'est pas présente. De nombreuses routines asynchrones reposent sur l'appel système select.

Questions connexes