何时使用handle_info和handle_cast

goo*_*nsu 5 erlang

似乎功能gen_server:handle_cast/3gen_server:handle_info/3非常相似.我知道这handle_info/3用于处理超时事件.

有没有其他规则可以使用它们?在我看来,我更喜欢handle_info/3用来处理异步消息.因为使用语法糖更短!.

Ank*_*kur 6

gen_server是典型的进程消息循环的抽象.它提供了类似的API call,并cast把消息发送到流程但是当你也有PID过程的,任何代码都可以发送消息到过程无需经过去callcastAPI,并在这些情况下的handle_info回调被调用.如果你想将消息发送到您的过程中使用的!运营商,那么你可能不需要gen_server或者如果你想使用gen_server则建议使用callcastAPI的为您的服务器功能和handle_info其他类型的消息.