jsl*_*oop 2 erlang erlang-supervisor
我想动态地将孩子添加到simple_one_for_one
主管中。为此,我正在考虑使用make_ref()
ref 创建子标识符并将其保存在地图中。孩子终止后,该参考将从地图中删除。在这种情况下,将通过垃圾收集引用吗?
您不会simple_one_for_one
通过来引用主管的子女child_id()
。这些主管只有一个child_spec()
,并且他们的所有子级都使用相同的规范,这意味着child_id()
该规范中的会被忽略。这些子项将由其pid引用。因此该start_child/2
函数不带child_spec()
(也不带child_id()
),仅带参数列表,而terminate_child/2
带pid()
而不是child_id()
。因此,您根本不需要生成引用。
但是,要回答您的问题:是的,引用是垃圾收集的。所有Erlang数据类型都是垃圾回收。如果您确实想深入研究细节,则有一些警告,但没有什么可真正担心的: