在灵药中

时间:2015-09-28 08:21:22

标签: process pid elixir

在erlang中,可以创建一个与进程不对应的pid。使用此示例可以在Learn You Some Erlang中找到here

pid(0,250,0).

有没有办法在长生不老药中做同样的事情? 我目前关闭的是创建一个立即终止并使用该pid的进程。

fake_pid = Process.spawn(fn -> end)

这种接缝有点像黑客,我不确定从未创建的pid和死pid之间是否会有一些细微的差别。

2 个答案:

答案 0 :(得分:12)

您可以使用pid/3 Erlang函数directly in Elixir

:c.pid(0,250,0)

另外 - 只是不是来自Erlang文档:

  

将X,Y,Z转换为pid。只有在调试时才能使用此功能。

答案 1 :(得分:4)

出于您的目的,我会使用测试代码中的self()。这将解决运行当前测试用例的过程。

如果由于某种原因需要测试另一个pid,那么使用Process.spawn/1的方式非常好,因为它可以确保不采用pid(并且不会指向系统中的重要内容)它已经死了(或者活着,如果你在测试期间保持活着的话)。

Erlang :c.pid/3或新的Elixir 1.1 IEx.Helpers.pid/3仅用于在shell中使用的便捷函数。