Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's the difference betwee "Actor model" and "Reactor pattern" in Python?

https://en.wikipedia.org/wiki/Actor_model, the project is called "pulsar"

https://en.wikipedia.org/wiki/Reactor_pattern, the projects are Twisted and Tornado

What's the difference in the theory and practice?

like image 460
est Avatar asked Oct 14 '13 00:10

est


2 Answers

Twisted, tornado and pulsar all use an event loop (called reactor in twisted) to wait for events on file descriptors. In this respect, they are similar libraries and therefore can interoperate with each other.

The actor model in pulsar refers to the parallel side of the asynchronous framework. This is where pulsar differs from twisted for example. In pulsar each actor (think of a specialised thread or process) has its own event loop. In this way any actor can run its own asynchronous server for example.

More information about the actor implementation in pulsar here

http://quantmind.github.io/pulsar/design.html

like image 85
Luca Sbardella Avatar answered Sep 18 '22 13:09

Luca Sbardella


There's no difference. "Actor model" is somewhat more ambiguous, but both terms are sufficiently general that they can apply to lots of different software with different characteristics outside their basic model.

like image 41
Glyph Avatar answered Sep 22 '22 13:09

Glyph