关于actor模式

在下根据一些资料研究并发是,发现erlang这个神奇的东东,erlang组织程序大概就是一个个的actor,actor之间用消息进行通信,一个个的actor运行在自己的“thread”中。

看书时,发现atm的例子也是,atm,机器接口,银行 分别属于三个不同的线程,之间通过消息进行通信。

actor真是适合那种清心寡欲的系统,背后通过消息进行耦合,但是对象之间进行大量的数据共享时,这种就不是很合适了,虽然也能使用。

actor和线程之间的关系,如果一个个的actor都使用一个线程,那么就太令人崩溃了。actor和csp的关系非常的像,大概就是csp是纤程为基础,actor可以不用纤程,是一种更加广义的概念

其实关于阻塞函数和非阻塞函数
actor在运行对于计算密集型的函数,可以调用workthread的线程,对于io阻塞的可以采用callback的方式进行。

反正有几个概念
io
计算密集型
异步编程

看https://github.com/wlgq2/orca.git时,发现这个家伙竟然是,用一个消息中心里面存放着消息的任务,然后调用线程池来进行任务的执行,这也是一个极好的方式啊。

你可能感兴趣的:(关于actor模式)