Erlang gen_server:start_link/3 和gen_server:start_link/4
来源:互联网 发布:邮箱群发软件 编辑:程序博客网 时间:2024/06/05 07:10
Erlang gen_server:start_link/3 和gen_server:start_link/4
分类: erlang
两个方法都可以用来启动一个gen_server服务器进程,具体的参数如下:
gen_server:start_link(Module,Args,Option);
gen_server:start_link(ServerName,Module,Args,Option);
第二个方法只比第一个多了个ServerName,在gen_server的源码中区别如下:
- start_link(Mod, Args, Options) ->
- gen:start(?MODULE, link, Mod, Args, Options).
- start_link(Name, Mod, Args, Options) ->
- gen:start(?MODULE, link, Name, Mod, Args, Options).
再具体看gen的源码:
- -spec start(module(), linkage(), emgr_name(), module(), term(), options()) ->
- start_ret().
- start(GenMod, LinkP, Name, Mod, Args, Options) ->
- case where(Name) of
- undefined ->
- do_spawn(GenMod, LinkP, Name, Mod, Args, Options);
- Pid ->
- {error, {already_started, Pid}}
- end.
- -spec start(module(), linkage(), module(), term(), options()) -> start_ret().
- start(GenMod, LinkP, Mod, Args, Options) ->
- do_spawn(GenMod, LinkP, Mod, Args, Options).
可以看出如果有ServerName参数就会先查找一遍是否有同名的进程存在,有就会产生{error,{already_started,Pid}} 的提示。
所在在开发并发的gen_server程序的时候要注意调用哪个方法。
- Erlang gen_server:start_link/3 和gen_server:start_link/4
- Erlang gen_server:start_link/3 和gen_server:start_link/4
- Erlang gen_server:start_link/3 和gen_server:start_link/4 的区别以及各参数的含义
- Erlang gen_server:start_link/3 和gen_server:start_link/4 的区别以及各参数的含义
- Erlang - gen_server
- erlang gen_server
- gen_server
- gen_server
- Erlang gen_server和ets简单应用
- Erlang gen_tcp和gen_server结合应用
- erlang远程调用和模拟gen_server消息
- erlang(2) gen_server
- erlang gen_server行为模式
- Erlang/Otp gen_server terminate
- erlang gen_server start
- Erlang — gen_server
- erlang gen_server热更新
- erlang gen_server 测试
- 十年
- linux下Qt开发环境中qwt库的安装与使用
- 呼叫中心之读《361°水晶管理》
- Flex中Date类型与String类型相互转化
- 原码,反码,补码,移码计算
- Erlang gen_server:start_link/3 和gen_server:start_link/4
- zencart.139h 版本不支持多语言解决办法。
- 区分const,static,readonly,volatile四个关键字
- 想你,但不爱你
- hdu1796 How many integers can you find----容斥原理
- IT职场人生系列之九:消费观(攒钱,继续教育,买房)
- 面试训练海涛53题
- 风的世界里有海的七滴泪水
- ios:高效开发必备的10款Objective-C类库