Eu estava olhando para programação simultânea nas linguagens de programação Erlang e Go. De acordo com a minha descoberta, eles são usados modelo de ator e CSP, respectivamente.
Mas ainda estou confuso com quais são as diferenças objetivas entre CSP e atores? é apenas apenas teórico diferente, mas o mesmo conceito?
programming-languages
concurrency
concepts
go
erlang
nish1013
fonte
fonte
Respostas:
Na prática, há muito pouca diferença: ambos representam unidades de execução separadas cuja interface principal com o mundo externo é via mensagens.
As diferenças estão nos detalhes de implementação dos idiomas. Aqui estão alguns desses detalhes:
receive
obter tudo o que é enviado ao processo e deve corresponder aos padrões (no Go, você usaria aselect
com vários casos, para que o código parecesse muito semelhante, apenas com canais diferentes).Este último ponto é, penso eu, o mais importante. Embora ambos usem as mensagens como principal meio de comunicação, Erlang oferece garantias muito mais fortes sobre como e quando o estado pode mudar.
fonte