我想知道,我如何使用erlang发送消息进行处理。 我确实开始了一个过程,输出显示pid <0.39.0&gt;。 我的问题是如何手动向此过程发送消息(&lt; 0.39.0&gt;)。
Anyhelp将不胜感激
答案 0 :(得分:5)
虽然list_to_pid/1
确实可用于构造PID并使用它来发送消息,但不建议使用它:
此BIF用于调试和在Erlang操作中使用 系统。它不应该用在应用程序中。
更好的方法是在启动过程时保存PID:
1> P = spawn(fun() -> receive _ -> ok end end).
<0.34.0>
2> P!hi.
hi
答案 1 :(得分:3)
(emacs@yus-iMac.local)100> P = list_to_pid("<0.39.0>").
<0.39.0>
(emacs@yus-iMac.local)101> P!aaa.
aaa
答案 2 :(得分:2)
除了其他解决方案,REGISTER功能可能会有所帮助。
register(regpid,spawn(fun() -> receive _ ok end end).
regpid ! msg.
你可以在任何地方发送msg到regpid。