Erlang运行时对发送到不存在进程的消息做了什么?例如,生成一个进程,然后在它终止后,另一个进程向它发送一条消息。
答案 0 :(得分:5)
邮件被删除。每the documentation:
如果接收器已经终止,信号将不会到达......
另见this answer from rvirding,他可能知道他在说什么:
向pid发送一条消息,指向一个死进程是完全合法的(消息刚刚消失)......
答案 1 :(得分:4)
如果消息发送到PID,则消息将消失在空白中。您甚至可以发送到不存在的PID ...
1> list_to_pid("<0.0.1>").
<0.0.1>
2> v(1) ! foo.
foo
如果消息发送到原子,则原子必须是发送时PID的注册名称,否则发送将崩溃......
3> spawn(fun() -> register(name, self()), then_exit end).
<0.36.0>
4> name ! foo.
** exception error: bad argument
in operator !/2
called as name ! foo