Message Processing Semantics
Actor Encapsulation
No direct access is possible to the actor behaviour
Only messages can be sent to known addresses (ActorRef)
- every actor knows its own address (self)
- creating an actor returns its address
- addresses can be sent within messages (e.g. sender)
Actors are completely independent agents of compution
- local execution, no notion of global synchronization
- all actors run fully concurrently
- message-passing primitive is one-way communication
Actor-Internal Evaluation Order
Actor is effectively single-threaded.
- messages are received sequentially
- behaviour change is effective before processing the next message
- processing one message is the atomic unit of execution
This has the benefits of synchronized methods, but blocking is replaced by enqueueing a message