Erlang事件处理器gen_event

Erlang的gen_event是一个通用事件管理器进程,用于处理动态添加和删除的事件处理器。不同于gen_server,gen_event将回调函数分为多个模块,作为事件处理器。本文介绍了如何使用gen_event,包括编写事件处理器、创建管理器、添加处理器和通知管理器,并通过冰球比赛案例进行了说明。在源码分析中,展示了添加处理器的过程和事件通知的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是gen_event
按照书上定义在OTP中,它由通用事件管理器进程组成,该进程具有动态添加和删除的任意数量的事件处理程序。事件可以是例如错误,警报或要记录的某些信息

简单来说,就是gen_event行为运行一个了一个事件管理进程,该进程接受消息(事件),并根据消息(事件)做对应的事件处理,而提供的对应事件处理其实就是添加的“回调函数”(事件处理器)。与gen_server不一样的是,他把回调的函数分类成多个module并称为事件处理器,需要注意的是事件处理器不是一个进程,看源码你会发现只是事件管理器进程里构造了一个记录列表,里面储存了对应的module和函数参数,必要时就调用。gen_event在游戏开发中除了在日记模块有用到,其他的地方几乎没有应用
up-a286fc4f9df6597a9e87cf0a14fca9ed793.png

二、如何使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SummerGao.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值