发送消息Pid Erlang

时间:2013-01-05 08:08:15

标签: erlang pid message-passing erl

我想知道,我如何使用erlang发送消息进行处理。 我确实开始了一个过程,输出显示pid <0.39.0&gt;。 我的问题是如何手动向此过程发送消息(&lt; 0.39.0&gt;)。

Anyhelp将不胜感激

3 个答案:

答案 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。