high佬全 发表于 2015-1-21 00:14:37

持续更新。。。。

今天主题是process_flag(trap_exit,true)这个函数
首先这个函数的作用是当你使用link/1或spwan_link/2函数是两个进程连接
在一起时,调用这个函数能捕捉其中的任一个进程退出的信号转化为消息
放到邮箱中。
以下这些是我从别的网站复制过来的,觉得解释的还是不错。

捕获进程退出的编程模式:
模式一:我不在乎创建的进程是否崩溃创建一个并行进程,当被生成的进程崩溃时,当前进程不会察觉Pid = spawn(Fun).模式二:如果我创建的进程非正常的崩溃,我也消亡Pid = spawn_link(Fun).模式三:如果我创建的进程崩溃,我需要处理错误process_flag(trap_exit, true),Pid = spawn_link(Fun),在模式三中,我们可以在后面加上receive{'EXIT',Pid,_Reason} ->   FUNend.
这样我们可以接受当Reason是非正常的退出信号,可以用自己写FUN这部分的代码(立即或延迟重启该程序等等)
代替结束自己的行为,不至于像模式二当连接的进程非正常退出时就必须退出。

页: [1]
查看完整版本: 持续更新。。。。