如何发送消息以使用Erlang处理?我确实开始了一个过程,并且输出显示pid为<0.39.0>。我的问题是如何手动向此过程(<0.39.0>)发送消息。
虽然list_to_pid/1
实际上可以用于构造PID并使用它发送消息,但不鼓励使用它:
此BIF用于调试和在Erlang操作中使用系统。不应在应用程序中使用它。
一种更好的方法是在开始该过程时保存PID:
1> P = spawn(fun() -> receive _ -> ok end end).
<0.34.0>
2> P!hi.
hi
([email protected])100> P = list_to_pid("<0.39.0>").
<0.39.0>
([email protected])101> P!aaa.
aaa
除了其他解决方案之外,REGISTER函数可能会有所帮助。
register(regpid,spawn(fun() -> receive _ ok end end).
regpid ! msg.
您可以将msg发送到各地的regpid。