什么是列表实现是线程安全和高性能?java中的优化线程安全列表
通过高性能我的意思是,我有很多列表读取接入和几个写访问。 所以我需要一个使用ReadWriteLock的List实现。
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReadWriteLock.html
ReadWriteLock中:读取锁可以同时被多个 读线程举行,只要没有作家。写锁定是独家的 。
什么是列表实现是线程安全和高性能?java中的优化线程安全列表
通过高性能我的意思是,我有很多列表读取接入和几个写访问。 所以我需要一个使用ReadWriteLock的List实现。
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/ReadWriteLock.html
ReadWriteLock中:读取锁可以同时被多个 读线程举行,只要没有作家。写锁定是独家的 。
什么是线程安全和高性能的List实现?
的CopyOnWriteArrayList和矢量是列表的线程安全的实现。
其中2个CopyOnWriteArrayList被认为是高性能的,因为在许多读取访问中只需很少的写入操作即可完成。它也在内部使用ReentrantLock。注意: - 在CopyOnWriteArrayList的情况下,所有可变操作(add,set等)都是通过创建底层数组的新副本来实现的,这就是为什么只有在多次读访问时才应该使用它,而且非常很少有写入权限。 API
如果您需要一些写入权限和大量的读取权限,那么我会建议CopyOnWriteArrayList。这很昂贵,因为每个更改都会导致创建新的List对象。但是,如果你的清单不是很大,并且你的主要焦点是阅读,那么它可能是最好的解决方案。
查看['java.util.concurrent']中的集合(http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html) – 2014-09-02 19:00:12