Ich beschäftigte mich mit gleichzeitiger Programmierung in den Programmiersprachen Erlang und Go. Nach meinem Befund werden sie als Actor Model bzw. CSP verwendet.
Trotzdem bin ich verwirrt mit den objektiven Unterschieden zwischen CSP und Akteuren. ist es nur theoretisch anders, aber das gleiche Konzept?
programming-languages
concurrency
concepts
go
erlang
nish1013
quelle
quelle
Antworten:
In der Praxis gibt es kaum einen Unterschied: Beide stellen separate Ausführungseinheiten dar, deren primäre Schnittstelle zur Außenwelt über Nachrichten erfolgt.
Die Unterschiede liegen in den Implementierungsdetails der Sprachen. Hier sind einige solche Details:
receive
erhält man alles , was an den Prozess gesendet wird, und muss das Muster abgleichen (in Go würden Sie aselect
mit mehreren Fällen verwenden, damit der Code sehr ähnlich aussieht, nur mit verschiedenen Kanälen).Dieser letzte Punkt ist meiner Meinung nach der wichtigste. Während beide Nachrichten als primäres Kommunikationsmittel verwenden, gibt Erlang viel stärkere Garantien darüber, wie und wann sich der Zustand ändern kann.
quelle