当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在Java6中使用的最佳方法,可以同时访问List》经验,为你挑选了0个好方法。

我有一个由多个线程访问的List对象.主要有一个线程,在某些情况下有两个线程,用于更新列表.根据正在处理的用户请求数,有一到五个可以从此列表中读取的线程.该列表不是要执行的任务队列,它是正在检索和同时更新的域对象的列表.

现在有几种方法可以访问此列表的线程安全:
-use synchronized block
-use normal Lock(即读写操作共享相同的锁)
-use ReadWriteLock
-use一个新的ConcurrentBLABLBA集合类

我的问题:
什么是最佳使用方法,因为cricital部分通常不包含大量操作(主要是添加/删除/插入或从列表中获取元素)?
你能推荐另一种方法,上面未列出吗?

一些约束 - 最佳
性能至关重要,内存使用量不是很多
- 必须是有序列表(当前在ArrayList上同步),尽管不是排序列表(即不使用Comparable或Comparator排序,而是根据插入顺序排序)
- list会很大,包含多达100000个域对象,因此使用类似CopyOnWriteArrayList的东西是不可行的
- 写入/更新电路部分通常非常快,做简单的添加/删除/插入或替换(设置​​)
- 读取操作将主要执行一个elementAt(索引)调用大部分时间,虽然一些读操作可能会进行二分查找,或indexOf(元素)
- 虽然像indexOf(..)之类的操作将遍历列表,但不会对列表进行直接迭代

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有