我注意到两种“消息传递”的方法。一种我见过 Erlang 的使用,另一种来自 Stackless Python。据我了解,这就是区别
Erlang Style - 消息被发送并排队到接收进程的邮箱中。从那里他们以先进先出的方式被移除。一旦第一个进程发送消息,它就可以自由地继续。
Python 风格 - 进程 A 排队等待发送到进程 B。B 当前正在执行一些其他操作,因此 A 被冻结,直到 B 准备好接收。一旦 B 打开读取通道,A 发送数据,然后它们都继续。
现在我看到 Erlang 方法的优点是你没有任何阻塞的进程。如果 B 永远无法接收,A 仍然可以继续。但是我注意到在我编写的一些程序中,Erlang 消息框可能会充满数百(或数千)条消息,因为消息的流入量大于流出量。
现在我还没有用任何一种框架/语言编写过大型程序,所以我想知道你的经验是否与此有关,如果这是我什至应该担心的事情。
是的,我知道这是抽象的,但我也在寻找相当抽象的答案。