在erlang中,可以创建一个与进程不对应的pid。使用此示例可以在Learn You Some Erlang中找到here。
pid(0,250,0).
有没有办法在长生不老药中做同样的事情? 我目前关闭的是创建一个立即终止并使用该pid的进程。
fake_pid = Process.spawn(fn -> end)
这种接缝有点像黑客,我不确定从未创建的pid和死pid之间是否会有一些细微的差别。
答案 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中使用的便捷函数。