Actors: a model for reasoning about open distributed systems
Gul Agha, Prasannaa Thati, Reza Ziaei · 2001
this paper abstracts some fundamental aspects of open systems. Actors provide a natural generalization for objects -- encapsulating both data and procedures. However, actors differ from sequential objects in that they are also units of concurrency: each actor executes asynchronously and its operation may overlap with other actors. This unification of data abstraction and concurrency is in contrast to language models, such as Java, where an explicit and independent notion of thread is used to provide concurrency. By integrating objects and concurrency, actors free the programmer from having to write explicit synchronization code to prevent harmful concurrent access to data within an object