【发布时间】:2012-12-19 15:30:56
【问题描述】:
如何发送消息以使用 Erlang 进行处理?我确实启动了一个进程,输出显示 pid(进程标识符)是<0.39.0>。
我的问题是如何手动向此进程 (<0.39.0>) 发送消息。
【问题讨论】:
标签: erlang pid message-passing erl
如何发送消息以使用 Erlang 进行处理?我确实启动了一个进程,输出显示 pid(进程标识符)是<0.39.0>。
我的问题是如何手动向此进程 (<0.39.0>) 发送消息。
【问题讨论】:
标签: erlang pid message-passing erl
虽然 list_to_pid/1 确实可以用于构造 PID 并使用它来发送消息,但不鼓励使用它:
此 BIF 旨在用于调试和在 Erlang 操作中使用 系统。不应在应用程序中使用它。
更好的方法是在启动进程时保存 PID:
1> P = spawn(fun() -> receive _ -> ok end end).
<0.34.0>
2> P!hi.
hi
【讨论】:
(emacs@yus-iMac.local)100> P = list_to_pid("<0.39.0>").
<0.39.0>
(emacs@yus-iMac.local)101> P!aaa.
aaa
【讨论】:
除了其他解决方案,REGISTER func 可能会有帮助。
register(regpid,spawn(fun() -> receive _ ok end end).
regpid ! msg.
你可以在任何地方向 regpid 发送消息。
【讨论】: