首页 > 解决方案 > 为什么要为不是 named_table 的 ETS 表分配名称?

问题描述

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

标签: erlangets

解决方案


使用不带 named_table 标志创建的 ETS 表:

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

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


推荐阅读