如何发送消息以使用 Erlang 进行处理?我确实启动了一个进程,输出显示 pid(进程标识符)是<0.39.0>
. 我的问题是如何<0.39.0>
手动向该进程 ( ) 发送消息。
问问题
2994 次
3 回答
6
虽然list_to_pid/1
确实可以用于构造 PID 并使用它来发送消息,但不鼓励使用它:
此 BIF 旨在用于调试和在 Erlang 操作系统中使用。它不应该在应用程序中使用。
更好的方法是在启动进程时保存 PID:
1> P = spawn(fun() -> receive _ -> ok end end).
<0.34.0>
2> P!hi.
hi
于 2013-01-05T10:26:31.690 回答
3
(emacs@yus-iMac.local)100> P = list_to_pid("<0.39.0>").
<0.39.0>
(emacs@yus-iMac.local)101> P!aaa.
aaa
于 2013-01-05T08:38:25.987 回答
2
除了其他解决方案,REGISTER func 可能会有所帮助。
register(regpid,spawn(fun() -> receive _ ok end end).
regpid ! msg.
您可以将 msg 发送到任何地方的 regpid。
于 2013-01-09T04:26:15.623 回答