我如何用Erlang向进程发送消息?我确实启动了一个进程,输出显示pid(进程标识符)是<0.39.0>。我的问题是我如何手动向这个进程(<0.39.0>)发送消息。
<0.39.0>
20jt8wwn1#
虽然list_to_pid/1确实可以用于构造PID并使用它来发送消息,但不鼓励使用它:此BIF用于调试和Erlang操作系统。不应在应用程序中使用。更好的方法是在启动进程时保存PID:
list_to_pid/1
1> P = spawn(fun() -> receive _ -> ok end end). <0.34.0> 2> P!hi. hi
ztyzrc3y2#
(emacs@yus-iMac.local)100> P = list_to_pid("<0.39.0>"). <0.39.0> (emacs@yus-iMac.local)101> P!aaa. aaa
brc7rcf03#
除了其他解决方案,REGISTER功能可能会有帮助。
register(regpid,spawn(fun() -> receive _ ok end end). regpid ! msg.
您可以向任何地方的regpid发送msg。
3条答案
按热度按时间20jt8wwn1#
虽然
list_to_pid/1
确实可以用于构造PID并使用它来发送消息,但不鼓励使用它:此BIF用于调试和Erlang操作系统。不应在应用程序中使用。
更好的方法是在启动进程时保存PID:
ztyzrc3y2#
brc7rcf03#
除了其他解决方案,REGISTER功能可能会有帮助。
您可以向任何地方的regpid发送msg。