【发布时间】:2015-06-04 18:28:58
【问题描述】:
18.0 中的番石榴布隆过滤器是否线程安全。换句话说,我可以让多个线程共享一个 Bloom Filter 实例并同时使用 myBloomInstance.mightContain 和 myBloomInstance.put。 谢谢你的帮助
【问题讨论】:
18.0 中的番石榴布隆过滤器是否线程安全。换句话说,我可以让多个线程共享一个 Bloom Filter 实例并同时使用 myBloomInstance.mightContain 和 myBloomInstance.put。 谢谢你的帮助
【问题讨论】:
不,您必须同步。
如果你需要并发,你可以分成几个部分。有
com.google.common.util.concurrent.Striped 这很容易。
和往常一样,您可以填写它并且只在另一个线程中阅读它,假设您做了一个保存发布。
BloomFilter 在当前 Guava 版本中是线程安全的:
https://github.com/google/guava/commit/6092a4a8b1087f92d0c3169b9e96d53c54ca95c4
【讨论】: