Question

J'ai trouvé il y a aussi un modèle d'acteur Akka, alors je me demande quelle est la différence entre l'acteur et le modèle de l'acteur de la Scala de Akka?

Était-ce utile?

La solution

Eh bien, il n'y a pas. Il est juste modèle de l'acteur, et les acteurs et les acteurs Scala Akka sont deux implémentations de ce modèle.

Tout modèle Acteur dit que vos primitives sont des acteurs de concurrence, qui peuvent:

  • recevoir un message et décider quoi faire en fonction du contenu du message, y compris:

  • envoyer des messages à tous les acteurs qu'ils connaissent

  • créer de nouveaux acteurs

et fournit certaines garanties, par exemple:.

  • tout acteur ne gérer qu'un seul message à la fois

  • messages envoyés par l'acteur X à l'acteur Y arrivera dans le Thay de commande ont été envoyés

Il n'y a pas de différence entre les acteurs Scala et Akka à ce niveau.

Pour les différences dans ce qu'ils peuvent faire, voir différents Scala Acteur Vue d'ensemble Implémentations. Le plus important, pour moi, est AKKA soutient les superviseurs et les ActorRegistry.

Autres conseils

Il y a aussi une réponse historique. Les créateurs de Scala pensaient qu'il devrait y avoir un cadre d'acteur. Jonas Boner a essayé, mais n'a pas été complètement satisfait donc il a commencé à travailler sur une nouvelle - qui a évolué en Akka. Cependant, les gens Scala pensaient qu'il valait mieux que leur propre - donc à Jfokus 2011, ils ont annoncé que Akka allait devenir le cadre acteur standard Scala. Cependant, que la migration prendra un certain temps.

Cela dépend un peu de ce que vous entendez par « modèle » -. Vous pouvez consulter le « modèle d'exécution » ou le « modèle de programmation » (et peut-être d'autres modèles aussi)

Pour les modèles d'exécution, il y a essentiellement deux: à base de fil ou événementiel. La bibliothèque de l'acteur Scala contient à la fois la norme. Les utilisations à base de fil et un fil pour chaque acteur, alors que les utilisations basées sur des événements d'un fil-piscine. Le premier est plus intuitive à comprendre, ce dernier est plus efficace. Akka est construit sur le modèle événementiel.

Pour le modèle de programmation, il y a une grande différence entre la bibliothèque standard scala et Akka. Dans la bibliothèque standard scala, vous implémentez essentiellement la méthode « run » - et si vous voulez attendre un message entrant, vous vous entrez dans un état d'attente (en appelant « recevoir » ou « réagir »). Ainsi, le modèle de programmation suivre le « fil-métaphore ». Cependant, à Akka, la métaphore de la programmation est que vous mettre en œuvre quelques méthodes de cycle de vie - mais le -method « run » est écrit à l'intérieur du cadre. Il se fait que ce modèle de programmation fonctionne beaucoup mieux avec le modèle d'exécution basé sur les événements ainsi.

Si vous êtes intéressé par les différents modèles d'exécution et des modèles de programmation des acteurs standard scala J'ai écrit quelques messages sur la question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top