Java 同时更新列表
我有一个将被更新的帐户列表-不太频繁,每天更新1-2次。Java 同时更新列表,java,java.util.concurrent,Java,Java.util.concurrent,我有一个将被更新的帐户列表-不太频繁,每天更新1-2次。 每隔很长一段时间就会有一个“包含”查找此数据。 理想的数据结构应该是ConcurrentLinkedList,但不幸的是它并不存在。 CopyOnWriteArrayList是唯一的首选选项吗?如果您主要阅读,为什么需要并发数据结构。相反,您可以使用HashSet或HashMap。这将使阅读速度加快。它更新的频率非常低,因此您可以显式地同步编写部分。您好,为什么您不考虑某种树或哈希映射数据结构,在这种数据结构中首先查找CopyOnWrit
每隔很长一段时间就会有一个“包含”查找此数据。
理想的数据结构应该是ConcurrentLinkedList,但不幸的是它并不存在。
CopyOnWriteArrayList是唯一的首选选项吗?如果您主要阅读,为什么需要并发数据结构。相反,您可以使用HashSet或HashMap。这将使阅读速度加快。它更新的频率非常低,因此您可以显式地同步编写部分。您好,为什么您不考虑某种树或哈希映射数据结构,在这种数据结构中首先查找
CopyOnWriteArrayList
听起来非常适合您的用例。您对此有何反对意见?您可能正在查找Set=Collections.newSetFromMap(新的ConcurrentHashMap());这似乎是错误的,因为当一个线程写入另一个线程时,它不应该读取过时的数据。但它更新得如此之少,您可以使用锁显式地处理它。正确的?。此外,在您的情况下,您的读取性能应该更快,列表对于包含的复杂性为o(n)。然后,您必须单独实现读/写锁,而不是显式锁,其中多个线程可以读取。可以设置可以使用set set=Collections.newSetFromMap(new ConcurrentHashMap());