Erlang之supervisor入门

本文介绍了Erlang OTP框架中的supervisor行为,它是用于监视和管理进程的组件。当你创建一个supervisor,可以通过start_link函数启动,init函数定义重启策略。常用的函数包括start_child、restart_child、delete_child和terminate_child,分别用于添加、重启、删除和停止子进程。文章还给出了一个简单的mysupervisor和myserver模块示例。
摘要由CSDN通过智能技术生成

1.概念:

     supervisor是OTP框架四大行为之一,它用于监视别的进程,当一个进程崩溃是,它能够快速重启该进程,并根据不同的策略做出不同的行为。

2.常用函数:

1.start_link({local/global,NAME}, MODULE, Args).

    创建一个supervisor的进程服务器,local为本地进程,global为全局进程,NAME为该进程名,MODULE为回调模块,调用该MODULE的init([])函数,Args为init的参数列表。

2.init([]) -> Result.

         1.  Result格式为:{ok,{SupFlags,[ChildSpec]}} | ignore,SupFlags通常为形式为{How, Max, Within}:在多长时间内(Within)重启了几次(Max),如何重启(HOW 重启策略);设计最大重启频率是为了避免反复重启进入死循环,一旦超出了此阈值,supervisor进程会结束掉自己以及它所有的子进程,并通过进程树传递退出消息,更上层的supervisor就会采取适当的措施,要么重启终止的supervisor要么自己也终止掉.

        2. How通常有以下几种格式:

           one_for_one : 若一个子进程崩溃,马上把他重启。
           one_for_all : 如果子进程终止,所有其它子进程也都会被终止,然后所有进程都会被重启.
           rest_for_one:如果一个子进程终止,在这个进程启动之后启动的进程都会被终止掉.然后终止掉的进程和连带关闭的进程都会被重启.

       3.ChildSpec为添加的子进程列表,格式会在start_child说明。

3.sta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值