Modelo de atores
Last updated
Last updated
Com modelo de atores podemos modelar nosso sistema concorrente onde cada unidade de execução é um ator:
possui identificação única
possui estado privado (não compartilha estado), ou seja, apenas o ator é responsável por modificar seu estado interno
se comunica através do envio de mensagens, seja por meio de canais, filas, etc
Como podemos ver na imagem acima, é possível concluir que um ator é bastante semelhante a um objeto em OOP.
Me perdoem
A grande diferença é que o ator é feito exclusivamente para cenários de concorrência, onde a implementação do ator pode ser baseada tanto em kernel threads quanto user threads, caso o runtime tenha a implementação.
O ponto principal para entendermos aqui é que o estado não é compartilhado, ou seja, é como se tivéssemos uma cópia única de todos os atributos do ator em diferentes threads mas com diferentes valores, aumentando assim o uso de memória total do sistema.
Com atores, eliminamos a necessidade de sincronização com locks.
Há vantagens e desvantagens em ambas as abordagens, lembre-se de que não existe bala de prata