将Erlang消息发送到不存在的PID

将Erlang消息发送到不存在的PID,erlang,Erlang,Erlang运行时如何处理发送到不存在进程的消息?例如,生成一个进程,然后在它终止后,另一个进程向它发送消息。该消息被丢弃。Per: 如果接收器已终止,信号将不会到达 还有,谁知道他在说什么 向pid发送一条消息时,引用一个死进程是完全合法的(消息只是消失了) 消息已被删除。Per: 如果接收器已终止,信号将不会到达 还有,谁知道他在说什么 向pid发送一条消息时,引用一个死进程是完全合法的(消息只是消失了) 如果消息被发送到PID,则消息将消失在空白中。您甚至可以发送到不存在的PID 1>

Erlang运行时如何处理发送到不存在进程的消息?例如,生成一个进程,然后在它终止后,另一个进程向它发送消息。

该消息被丢弃。Per:

如果接收器已终止,信号将不会到达

还有,谁知道他在说什么

向pid发送一条消息时,引用一个死进程是完全合法的(消息只是消失了)


消息已被删除。Per:

如果接收器已终止,信号将不会到达

还有,谁知道他在说什么

向pid发送一条消息时,引用一个死进程是完全合法的(消息只是消失了)


如果消息被发送到PID,则消息将消失在空白中。您甚至可以发送到不存在的PID

1> list_to_pid("<0.0.1>").
<0.0.1>
2> v(1) ! foo.
foo
1>列表到pid(“”)。
2> v(1)!福。
福

如果消息被发送到atom,则atom必须是发送时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
3>生成(fun()->注册(name,self()),然后退出结束)。
4> 名字!福。
**异常错误:参数错误
接线员/2.
被称为名字!福

如果消息发送到PID,则消息将消失在空白中。您甚至可以发送到不存在的PID

1> list_to_pid("<0.0.1>").
<0.0.1>
2> v(1) ! foo.
foo
1>列表到pid(“”)。
2> v(1)!福。
福

如果消息被发送到atom,则atom必须是发送时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
3>生成(fun()->注册(name,self()),然后退出结束)。
4> 名字!福。
**异常错误:参数错误
接线员/2.
被称为名字!福