Actor model & D
Russel Winder
russel at winder.org.uk
Mon Aug 19 09:46:15 PDT 2013
On Mon, 2013-08-19 at 09:20 -0700, Andrei Alexandrescu wrote:
[…]
> Go is CSP - isn't that different from Actor?
CSP certainly is very different from actors, it's in the synchronization
structure. Go's model isn't CSP per se, it is a more or less the same
thing developed by Pike over the years. At it's coarsest:
An actor processes a message from it's message drop as and when it
wishes and send messages to other actors it know the message drop for
asynchronously.
Processes in CSP rendezvous in order to pass messages down a one-to-one
channel, which has no buffering. Modern CSP allows one-to-one,
one-to-many, many-to-one and many-to-many channels with or without
buffering. CSP processes with many-to-one channels with large buffering
can appear very like actors.
Actors that are effectively event loops can be made to look an awful lot
like CSP.
The are different but there are shades of grey (no not that sort of
activity :-) so it is easy to see how people might get confused.
The third player here is dataflow, and this is increasingly used for
"Big Data" and might be worth thinking about in std.parallelism. An
operator (a process as in CSP, but the whole model comes from 1970s
dataflow computer research hence operator) is event driven. An operator
springs into action when a pattern of data-readiness on it's inputs
occurs. It them computes and outputs results on it's output channels.
We like dataflow.
--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder at ekiga.net
41 Buckmaster Road m: +44 7770 465 077 xmpp: russel at winder.org.uk
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130819/d08f08ff/attachment.pgp>
More information about the Digitalmars-d
mailing list