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.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Decoupling Isolation and Concurrency: An Actor-Centric View of Behaviour-Oriented Concurrency

  • Luke Cheeseman,
  • Elias Castegren,
  • Sophia Drossopoulou,
  • Tobias Wrigstad,
  • Sylvan Clebsch,
  • Matthew Parkinson

摘要

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.