java - 线程安全的多重集

标签 java multithreading thread-safety guava multiset

我已经谷歌搜索了一段时间,无法相信我找不到它,但我如何才能安全地实现一个 Multiset,它将被多个线程访问以进行读取和写入。

multiset 存储特定页面的 View ,并且将是一个简单的 Multiset<String> .

Guava 的旧版本有一个 synchronizedMultiset Multisets 中的函数类(class)。我应该只使用自己的同步包装器吗?如果可用,我更愿意使用库版本。

最佳答案

使用ConcurrentHashMultiset .

This bug report表示并发集合优于同步包装器,尽管这并不能解释为什么 Multimaps.synchronizedMultimap 存在。

关于java - 线程安全的多重集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24770796/

相关文章:

java - JBoss AS 7 和 http 线程 - 是否只有一个线程处理客户端的请求?

java - 通过 SMTP 发送邮件时获取 "MessagingException: Could not convert socket to TLS"

java - 两个线程可以同时访问一个同步方法吗?

c++ - 带有 QtConcurrent::run 的线程服务器

c# - 多线程应用程序中的单例类,锁定建议

java - 无法使用 ch.qos.logback.classic 类

java - 无法通过代理连接到服务器

java - 当 set 在 Java 中已经是原子的时,为什么我们需要 compareAndSet?

整数可以在线程之间安全地共享吗?

java - 销毁正在运行的线程并在新变量中重新初始化