Différences entre le modèle d'acteur et les processus séquentiels communicants (CSP)


16

Lorsque nous regardons le modèle d'acteur et les processus séquentiels communicants, nous voyons qu'ils essaient tous les deux de faire de la concurrence basée sur le passage de messages , mais ils sont distincts .

(Nous voyons des implémentations du modèle CSP dans les goroutines de go-lang (et core.async de Clojure ) et le modèle d'acteur dans la boîte à outils Akka de Scala )

J'essaie d'obtenir une liste simple des différences entre le modèle d'acteur et le CSP. Jusqu'à présent, j'ai:

Est-ce correct? Y a-t-il quelque chose qui me manque?

Hypothèses

  • Quand je dis «modèle d'acteur» - je veux dire la base théorique derrière la mise en œuvre dans le cadre Akka de Scala

Un gros point: dans le message CSP, le passage est synchrone; dans Acteurs, la transmission des messages est asynchrone.
Dave Clarke

@hawkeye Que jugez-vous être "le" modèle d'acteur? Depuis sa description informelle, de nombreuses formalisations sont apparues, avec des propriétés quelque peu différentes.
Martin Berger

@Martin - c'est utile. J'ai mis à jour mes hypothèses. Vous pouvez peut-être m'aider à trouver "celui que je recherche"
hawkeye

@hawkeye Que voulez-vous dire par le modèle Akka? Uniquement le mécanisme de calcul clé, ou aussi le cadre de surveillance / traitement des erreurs distribué?
Martin Berger

@MartinBerger juste le mécanisme de calcul clé
hawkeye

Réponses:


6

Voici comment je pense qu'Erlang fonctionne. Je pense que Akka est très similaire.

Chaque processus a une seule boîte aux lettres. Les messages sont placés dans la boîte aux lettres du destinataire par l'expéditeur et récupérés par le destinataire à l'aide de la correspondance de modèle. Ce processus de correspondance peut modifier l'ordre des messages dans le sens où le message le plus ancien d'une boîte aux lettres peut ne pas correspondre, mais un plus jeune le fait. Dans ce cas, le plus jeune est consommé en premier. En dehors de cela, l'ordre des messages est préservé.

ππ

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.