我需要编写一个服务器,它将接收来自其他模块的指令并根据收到的指令采取行动。效率是我主要关心的问题。所以我使用gen_server
还是编写自己的服务器。“我自己的服务器”是指:
-module(myserver).
-export([start/0, loop/0]).
start() ->
spawn(myserver, loop, []).
loop() ->
receive
{From, Msg} -> %Do some action here... ;
message2 -> %Do some action here...;
message3 -> %Do some action here...;
message4 -> %Do some action here...;
.
.
.
_-> ok
end,
loop().
所以要使用myserver
,我可能会在启动时将进程注册到一个注册名称下,然后每个客户端都会使用这个 pid 向服务器发送消息。
那么我应该使用这种方法,还是使用这种gen_server
行为来实现服务器?使用有什么好处gen_server
吗?但是gen_server
与 相比,使用会增加任何开销myserver
吗?