Java中list6_在Java 6中使用的最佳方法,可以同时访问List

我有一个由多个线程访问的List对象.主要有一个线程,在某些情况下有两个线程,用于更新列表.根据正在处理的用户请求数,有一到五个可以从此列表中读取的线程.

该列表不是要执行的任务队列,它是正在检索和同时更新的域对象的列表.

现在有几种方法可以访问此列表的线程安全:

– 使用同步块

– 使用普通锁(即读写操作共享相同的锁)

– 使用ReadWriteLock

– 使用一个新的ConcurrentBLABLBA集合类

我的问题:

什么是最佳使用方法,因为cricital部分通常不包含大量操作(主要是添加/删除/插入或从列表中获取元素)?

你能推荐另一种方法,上面未列出吗?

有些限制

– 最佳性能至关重要,内存使用不是那么多

-it必须是有序列表(当前在ArrayList上同步),尽管不是排序列表(即不使用Comparable或Comparator排序,但根据插入顺序排序)

– 列表很大,包含多达100000个域对象,因此使用像CopyOnWriteArrayList这样的东西是不可行的

– 写入/更新电路部分通常非常快,做简单的添加/删除/插入或替换(设置​​)

– 大多数时候,读取操作主要执行elementAt(索引)调用,尽管某些读取操作可能会进行二分查找,或者indexOf(元素)

– 不会对列表进行直接迭代,但像indexOf(..)这样的操作将遍历列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值