【发布时间】:2012-10-14 09:23:17
【问题描述】:
Erlang ETS 表可以在不同进程之间共享吗?因此,如果我有两个进程在不同的 Erlang 运行系统上运行,我能否以某种方式链接它们,以便我在一个 ETS 表中所做的所有更改都会反映在另一个表中?
【问题讨论】:
Erlang ETS 表可以在不同进程之间共享吗?因此,如果我有两个进程在不同的 Erlang 运行系统上运行,我能否以某种方式链接它们,以便我在一个 ETS 表中所做的所有更改都会反映在另一个表中?
【问题讨论】:
在单个 Erlang 节点中,ETS 表可以通过将public 选项传递给ets:new 来完全共享。 (但请注意,如果其所有者死亡,则该表将被销毁,除非您设置了继承人。)
如果需要跨多个 Erlang 节点共享表,则需要使用 Mnesia。
【讨论】:
您不能在不同节点上的进程之间“共享”ETS 表,ETS 表只能由创建它的节点上的进程访问。如果要共享 ETS 表,则需要在一个节点上创建一个进程,即具有该表的节点,并通过此进程从另一个节点访问该表。其实没那么难。
【讨论】: