gen_server启动,关闭,消息收发分析

本文深入探讨Erlang OTP中的gen_server行为,包括启动流程、消息收发(call和cast)以及关闭进程的方法。gen_server是用于构建可靠服务的模块,通过start_link函数启动,经过一系列步骤如init回调,进入运行状态并使用loop处理消息。消息处理由handle_call、handle_cast和handle_info负责。当需要关闭进程时,可通过返回{stop, normal, State}在回调函数中实现。" 116311886,2333089,开源串口虚拟示波器:实时数据可视化,"['嵌入式', '物联网', '编程语言', 'github', 'Qt']
摘要由CSDN通过智能技术生成

https://www.cnblogs.com/hzy1987/p/5441807.html
http://www.cnblogs.com/me-sa/archive/2011/12/20/erlang0023.html

介绍:

gen_server是OTP的一个behavior, 在behavior基础上快速构建出可用且可靠的功能.
behavior是进程模式的规范化,把代码分成两部分,一部分是通用部分(behavior模块),一部分是定制部分(回调模块).对于gen_server就是要把client/server的模型进行一个抽象和封装,把behavior和回调模块需要完成的职责分离开.

启动流程:

  1. 调用启动函数, start/3, start/4, start_link/3, start_link/4, 选择其中一个, 这里以常见的start_link/4为例,实际上是调用了gen:start, 第二个参数表示与父节点建立链接,即新启动的进程死掉后,会不会通知启动他的进程(父进程).
    start_link

  2. 进入gen:start/6, 首先判断使用Name名字的进程是否已经存在, 若注册了直接返回already_start, 若未注册则调用do_spawn/6,
    进入创建进程前的准备.

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值