erlang之exit/1,exit/2探索

本文介绍了Erlang中`exit/1`和`exit/2`函数的使用,特别是在进程通信和控制中的角色。通过示例代码展示了如何正确发送正常退出信号和强制退出信号,以及它们对进程的影响。
摘要由CSDN通过智能技术生成
-module(time).  
-export([start/2, stop/0, stop/1, cancel/1]).  
start(Time,Fun) ->  
     spawn(fun() -> time(Time,Fun) end).  
    
stop(Pid) ->              
     %%exit(Pid, normal).        %% NO
     %% If Reason is the atom normal, Pid will not exit.
     %% If it is trapping exits, the exit signal is
     %% transformed into a message {'EXIT', From, normal}
     %% and delivered to its message queue.
    
    
     exit(Pid, kill).                       %%YES    
     %%  If Reason is the atom kill, that is if
     %%  exit(Pid, kill) is called, an untrappable
     %%     exit signal is sent to Pid which will
     %%  unconditionally exit with exit reason killed.
    
stop() ->           %% YES 停掉调用time:stop()的进程,达不到停止要停止的进程的要求,是否normal无关
     %%exit(normal).
     exit(shutdown).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值