【问题标题】:Optimized Thread-Safe List in javajava中优化的线程安全列表
【发布时间】:2014-10-27 02:55:45
【问题描述】:

线程安全高性能的 List 实现有哪些?

我的意思是,我有一个列表,其中有许多读取访问权限和很少写入访问权限。 所以我需要一个使用 ReadWriteLock 的 List 实现。

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReadWriteLock.html

ReadWriteLock : 读锁可以被多个同时持有 读者线程,只要没有作者。写锁是 独家。

【问题讨论】:

标签: java multithreading list locking


【解决方案1】:

什么是线程安全和高性能的 List 实现?

CopyOnWriteArrayListVector 是 List 的线程安全实现。

在这 2 个 CopyOnWriteArrayList 中,在许多读取访问通过少量写入操作完成的情况下被认为是高性能的。它还在内部使用 ReentrantLock。

注意:- 在 CopyOnWriteArrayList 的情况下,所有可变操作(添加、设置等)都是通过制作底层数组的新副本来实现的,这就是为什么它应该仅在多次读取访问且很少使用的情况下使用写访问。 API

【讨论】:

    【解决方案2】:

    如果您需要少量写入权限和大量读取权限,那么我建议您使用CopyOnWriteArrayList。这很昂贵,因为每次更改都会导致创建新的 List 对象。但是,如果您的列表不是很大并且您的主要重点是阅读,那么它可能是最好的解决方案。

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 2012-06-09
      • 2014-04-07
      • 2012-12-26
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      相关资源
      最近更新 更多