Decoupling Isolation and Concurrency: An Actor-Centric View of Behaviour-Oriented Concurrency
摘要
The actor model is an elegant concurrency model with the actor as the central concept. An actor encapsulates a thread of control and isolated state, communicating with other actors exclusively via message passing. This makes reasoning about the behaviour of a single actor simple, but, due to the coupled units of isolation and concurrency, performing atomic operations involving multiple actors becomes harder. Recent work on behaviour-oriented concurrency mitigates this by explicitly decoupling isolation and concurrency. In this paper we explore the connections between the actor model and behaviour-oriented concurrency and the effects of (de)coupling the units of isolation and concurrency. We derive the semantics of behaviour-oriented concurrency by starting from a semantics of the actor model and gradually decoupling isolation and concurrency. We show that behaviour-oriented concurrency generalises the actor model by proving a simulation theorem: a program in the actor model has a corresponding program using behaviour-oriented concurrency.