标签: process erlang messaging
在erlang中,如果两个进程A和B同时向进程C发送消息。会有竞争条件吗?
C会从A收到完整的消息,然后从B继续发送消息吗?或者是C可能会收到A的消息块以及B&B的消息块?
答案 0 :(得分:4)
消息接收是一种原子操作。
如果您对如何完成感兴趣,请阅读VM的源代码。如果我简化它,发送过程就是执行这些步骤:
正如您所看到的,复制是在关键部分之外(之前)完成的,并且关键部分非常快。只是提供了一些指针。