erlang学习笔记3 gen_event

1 使用gen_event模块之前, 第一步就是用gen_event:start_link方法生成一个event manager进程。切记,只有这个进程才可以绑定handler。


2 真正的event处理器是需要behaviour(gen_event)的模块, behaviour的时候需要生成的回调函数:

init/1

handle_event/2

handle_call/3

code_change

terminate

3 handle_event 是异步处理event的函数

4 handle_call 是同步处理函数, 一定会返回某个值

5 一个event manager进程可以绑定多个event handler, 同一个消息会同时发送给多个handler进行处理。

6 process_info(Pid)可以查看一个进程的状态:

1> process_info(self()).
[{current_function,{erl_eval,do_apply,6}},
 {initial_call,{erlang,apply,2}},
 {status,running},
 {message_queue_len,0},
 {messages,[]},
 {links,[<0.27.0>]},
 {dictionary,[]},
 {trap_exit,false},
 {error_handler,error_handler},
 {priority,normal},
 {group_leader,<0.26.0>},
 {total_heap_size,609},
 {heap_size,233},
 {stack_size,24},
 {reductions,522},
 {garbage_collection,[{min_bin_vheap_size,46422},
                      {min_heap_size,233},
                      {fullsweep_after,65535},
                      {minor_gcs,7}]},
 {suspending,[]}]
7 pid(0,33,0). 函数可以生成一个真正的PID

------------------------------

周末愉快,推荐听一首歌杨乃文的《祝我幸福》

你可能感兴趣的:(erlang学习笔记3 gen_event)