Elixir和OTP的新手。尝试使用GenServer的一些hello-world示例。我正在编写测试,每个测试产生一个GenServer进程。它们没有明确终止。测试完成后,该过程是否会死亡?
跟进:如果没有终止,他们会变成“僵尸”进程吗?此外,测试完成后是否有用于终止它们的模式?
答案 0 :(得分:5)
不,进程不是垃圾回收。是的,他们变成了" zombie"过程
防止这种情况的模式是链接进程。当一个链接的进程终止时 - 所有链接的进程也将终止。因此,如果您在测试过程中使用GenServer.start_link
启动服务器 - 这会将服务器进程链接到测试进程,并且当测试存在时,服务器也将退出。