Quando analisamos o modelo do ator e os processos sequenciais de comunicação , vemos que ambos estão tentando fazer simultaneidade com base na passagem de mensagens , mas são distintos .
(Nós vemos implementações do modelo CSP no go-lang 's goroutines (e do Clojure core.async ) eo Modelo Ator em Scala Akka kit de ferramentas)
Estou tentando obter uma lista simples das diferenças entre o modelo do ator e o CSP. Até agora eu tenho:
- a passagem de mensagens dos atores é assíncrona, a passagem de mensagens CSP é síncrona
- atores são compostáveis , CSP não é (necessariamente)
- os atores sempre têm um não-determinismo ilimitado , o CSP pode ter um não-determinismo ilimitado
- atores têm topologia variável enquanto CSP fixou topologia
- atores têm o princípio de localidade , CSP não tem localidade
- como os atores são projetados com base em seu comportamento, o CSP não tem necessariamente esse
Isso está correto? Falta alguma coisa?
Premissas
- Quando digo 'modelo de ator' - quero dizer a base teórica por trás da implementação na estrutura Akka de Scala