为什么要为 ETS table 指定一个名称,而不是 named_table?

Why to assign a name for an ETS table that is not a named_table?

为通过 ets:new/2 创建的没有 named_table 标志的 ETS 表提供名称有什么意义?我放在那里有什么不同吗?

使用 ETS table 创建时没有 named_table 标志:

  • 您可以为不同的 table 多次使用相同的名称。
  • 您不能使用该名称访问那些 table,您必须使用 table 标识符(如果尝试,您会收到异常错误,可能会破坏 table如果您在 ETS 所有者流程中执行此操作)。
  • 在观察者的Table查看器中,显示的不是named_table的名字,所以无论如何给一个有意义的名字会很有趣。

此功能很有用,例如,当代码生成相同的进程或一组进程时,运行 并行并使用各自的 ETS table。