Erlang ets:insert_new for bag

时间:2015-05-13 21:29:43

标签: erlang ets

在我的代码中,我想利用ETS的包类型,可以为单个键存储多个值。但是,知道插入是否实际插入一个新值是非常有用的(即,如果插入的键有值或者是否存在于包中)。

使用ETS的类型集我可以使用ets:insert_new,但是bag(强调我的)的语义不同:

  

此函数的工作原理与insert / 2完全相同,但不是用相同的键覆盖对象(在set或ordered_set的情况下),或者使用表中已存在的键添加更多对象(在bag和duplicate_bag的情况下),它只返回false。

有没有办法通过一次通话实现这种功能?我理解它可以通过查找后跟可选插入来实现,但我担心它可能会影响并发访问的性能。

0 个答案:

没有答案