java集合学习(四)—线程安全版的ArrayList和LinkedList

  • Post author:
  • Post category:java



一、Collections.synchronizedList与CopyOnWriteArrayList

ArrayList是线程不安全的,因此在并发编程时,经常会使用Collections.synchronizedList与CopyOnWriteArrayList来替代ArrayList,接下来对这两种list进行性能的比较。

Collections.synchronizedList同步化的ArrayList写操作使用了同步锁,明显比CopyOnWriteArrayListsh用锁加复制数组的速度快。同时,CopyOnWriteArrayList的读操作的速度更快,并发性更好。

详细看博客:

https://blog.csdn.net/carson0408/article/details/81836189

—-性能比较


二、列表ArrayList、Vector、CopyOnWriteArrayList、Collections.synchronizedList(list)四种方式的比较

详细看博客:列表实现有ArrayList、Vector、CopyOnWriteArrayList、Collections.synchronizedList(list)四种方式。


三、线程安全队列:ConcurrentLinkedQueue替代LinkedList

ConcurrentLinkedQueue是 一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部 是队列中时间最长的元素。队列的尾部 是队列中时间最短的元素。 新的元素插入到队列的尾部,队列获取操作从队列头部获得元素。当多个线程共享访问一个公共 collection 时,ConcurrentLinkedQueue 是一个恰当的选择。此队列不允许使用 null 元素。

详细可看:

https://www.cnblogs.com/yangzhenlong/p/8359875.html



版权声明:本文为qq_40645822原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。