handle_cast,多个核心和队列

时间:2016-06-28 22:49:51

标签: erlang

在运行gen_server时,Erlang是否会利用多个内核?如果我在handle_cast中有两个不同的gen_server,并且他们经常被调用,那么它们可以并行运行吗?我问,因为我有一个设计,其中一个handle_cast将数据输入到队列中,另一个设计从同一队列中删除数据并对其进行处理。队列保持在gen_server状态。正如我所看到的,一个问题是我必须在返回状态时返回一个新队列(添加新项目,或删除检索到的项目)。如果它们并行运行,那么似乎可以在队列中形成竞争条件或不一致。是这种情况吗?

1 个答案:

答案 0 :(得分:4)

你的问题的答案是否定的。 gen_server在单个Erlang进程中运行。单个流程不能分解为可以同时运行的多个活动。