Mat*_*roh 2 erlang pid sendmessage
我在O'Reilly的"软件开发的并行方法"一书中读到了,
在第93页中有一些"消息传递"的例子.
1> Pid = self().
<0.30.0>
2> Pid ! hello.
hello
3> <0.30.0> ! hello.
* 1: syntax error before: '<'
Run Code Online (Sandbox Code Playgroud)
问题是我不明白为什么会出现语法错误,因为当我输入时1> Pid.
我会得到结果<0.30.0>,那么第2行和第3行之间的区别是什么(期望它是变量的事实)?
Erlang中没有文字进程ID的语法.这样做的原因是它几乎没有意义:每次程序运行时,您想要访问的进程最有可能具有不同的pid.
通常,您将生成一个进程,保存spawn变量的返回值,然后使用该变量与进程交互.
如果你真的想从它的字符串表示中获得一个可用的pid,你可以使用该函数list_to_pid,或者pid从打印的组件中获取一个pid:
list_to_pid("<0.30.0>")
pid(0,30,0)
Run Code Online (Sandbox Code Playgroud)