本文共 618 字,大约阅读时间需要 2 分钟。
继续(一)之后的内容
1.
这里会根据之前写的配置列表的参数决定是用start还是start_link方式启动
start和start_link的区别:
start_link会将两个进程链接在一起,由于link是全双工的,一般情况下,一个进程退出也会导致另外一个进程退出。可使用process_flag(trap_exit, true)设置某个进程不会因另外进程的退出而一起退出。
2.parse_options/1这个函数会将配置参数列表的数据转化为记录中的数据
3.
根据Name来确定gen_server的启动参数,undefined则是无名进程,gen_server则是有名进程
4.
这里则是调用listen前的一些参数确定,这些参数会在listen/3用到
5.
之前确定的参数会传进mochiweb_socket:listen/4调用,成功后返回套接字,在mochiweb_socket:listen/4中会根据Ssl参数确定是否启用SSL安全协议,然后进行监听端口。
6.
再看回之前的listen函数,监听端口成功后会得到端口号(mochiweb_socket:port/1),new_acceptor_pool/1将创建acceptor进程池,
根据记录中acceptor_pool_size指定的大小来创建多大的进程池,这里Size的值为16,即创建16个accept进程
并将创建好的进程Pid加入sets集合中
转载地址:http://vxxlf.baihongyu.com/