什么是GenServer?
通用服务器模块,包含服务器与客户端,你可以把它看做一个接受并处理请求的地方, 它还可以存储数据。
如何使用GenServer?
在一个模块中使用 use GenServer
。
GenServer中常用的函数有哪些?
- call/3 用于发送一个会有返回值的请求。
- cast/2 用于发送一个没有返回值的请求。
- handle_call/3 用于处理call发来的请求。
- handle_cast/2 用于处理cast发来的请求。
- handle_info/2 用于处理自定义请求。
如何启动GenServer?
{:ok, _} = GenServer.start_link(Stack, [:hello], name: MyStack)
其中Stack为定义了GenServer的模块名,:hello 为数据的初始值, MyStack为该GS所在pid的注册名。
之后我们便能以MyStack来调用这个GS了。 GenServer.call MyStack, :pop