Erlang ETS表可以在不同进程之间共享吗?因此,如果我有两个进程在不同的Erlang运行系统上运行,我可以以某种方式链接它们,以便我在一个ETS表中做的所有更改将反映在另一个ETS表中吗?
答案 0 :(得分:9)
在单个Erlang节点中,通过将public
选项传递给ets:new
,可以完全共享ETS表。 (请注意,如果其所有者死亡,该表将被销毁,除非您已经设置了继承人。)
如果需要跨多个Erlang节点共享表,则需要使用Mnesia。
答案 1 :(得分:4)
您不能在不同节点上的进程之间“共享”ETS表,ETS表只能由创建它的节点上的进程访问。如果要共享ETS表,则需要在一个节点(包含该表的节点)上创建一个进程,并通过此过程从另一个节点访问该表。这并不是那么困难。