Erlang程序模型,我们是怎么思考和交互的

我们没有共享的记忆(memory),我有我的记忆,你有你的. 我们有两个大脑,每人一个. 它们并没有相连. 要修改你的记忆,我发送一个消息给你: 我给你说,或我挥一挥手.

你听着,你看着,你的记忆在改变;但我们并没有问你问题或者观察你的反应,我不知道你收到了我的消息.

这就是Erlang进程的工作方式. Erlang进程没有共享内存. 每一个进程有它自己的内存. 要改变其他进程的内存,你必须给它发消息,并期望它能收到并理解消息.

为了确认另一个进程收到了你的消息,并且改变了它的内存,你必须问它(通过发送消息给它). 这正是我们的交互方式:

我: 嘿,亲爱的,我的电话号码是138-1234-1234.
我: 你记住了么?
她: 记住了,你的号码是 138-1234-1234

这个交互模式对我们来说是众所周知的.

从出生开始,我们通过观察学习与这个世界交互,给这个世界发出消息,并观察其反应.

人们作为独立的个体依靠消息通信.

这就是Erlang进程的工作模式,这也是我们的工作模式,因此,理解一个Erlang程序就变得容易了.

一个Erlang程序也许由十几个,或成百上千的细小的进程组成. 所有这些进程都独立的运行,它们之间依靠收发消息通信.每一个进程都有私有的内存. 这就像在一个超大的房间内所有人在相互交谈一样.