Java容器
DreamMakers
凡办大事,以识为主,以才为辅,凡成大事,人谋居半,天意居半。
展开
-
Java并发容器之CopyOnWriteArrayList
在这篇文章中来说下Java并发容器中的CopyOnWriteArrayList。CopyOnWriteArrayList是线程安全的。从名称上就可以看出来,它采用了的是写时复制的方法,简单来说,就是在对数组列表进行更新时先将原数组拷贝一份新数组,然后在新数组上进行操作,最后将原数组elements的引用指向新数组。什么是写时复制(Copy-On-Write,简称COW)呢?写时复制,是程序设计中的...原创 2018-05-02 12:18:23 · 388 阅读 · 0 评论 -
Java并发容器之CopyOnWriteArraySet
在这篇文章中来说下Java并发容器中的CopyOnWriteArraySet。CopyOnWriteArraySet是基于CopyOnWriteArrayList容器来实现相关功能的,如下所示: private final CopyOnWriteArrayList<E> al; /** * Creates an empty set. */ p...原创 2018-05-02 12:18:44 · 386 阅读 · 0 评论 -
Java并发容器之ConcurrentHashMap
在这篇文章中来看看线程安全的ConcurrentHashMap。讲到Map结构,我想应该都会知道HashTable和HashMap,但是这两者有什么区别呢?HashTable是线程安全的Map数据结构,因为它内部的操作方法都是通过synchronized关键字进行修饰的,确保了并发情况下不会对元素操作存在冲突。而HashMap是非线程安全的,在并发读取的情况下存在死循环的问题,这在另一篇文章《Ha...原创 2018-05-02 13:14:19 · 526 阅读 · 0 评论 -
Java并发与锁设计实现详述(13)- Java并发容器
关于Java中的并发容器,可参考以下文章,由于精力问题,这里只描述了几个典型的容器,在后期会不断更新补充:《Java并发容器之CopyOnWriteArrayList 》《Java并发容器之CopyOnWriteArraySet 》《Java并发容器之ConcurrentHashMap 》《Java并发容器之有界阻塞队列ArrayBlockingQueue ...原创 2018-05-17 19:08:57 · 404 阅读 · 0 评论 -
Java并发容器之有界阻塞队列ArrayBlockingQueue
在这篇文章中,我们来看下另一个线程安全的队列容器,那就是ArrayBlockingQueue。它是基于数组实现的有界阻塞队列。以JDK1.7为参考,ArrayBlockingQueue的类图结构如下所示:在ArrayBlockingQueue内部采用数组来保存队列元素,同时维护两个变量putIndex和takeIndex来标识插入元素和获取元素的下标位置,同时定义了count变量用来统计队列元素个...原创 2018-05-07 18:55:17 · 1713 阅读 · 0 评论 -
Java并发容器之阻塞队列LinkedBlockingQueue
在前一篇文章《Java并发容器之有界阻塞队列ArrayBlockingQueue》中讲到了阻塞队列,提到了ArrayBlockingQueue,在这篇文章中我们来看另一种线程安全的阻塞队列实现-LinkedBlockingQueue。ArrayBlockingQueue底层使用数组来保存队列元素,但是LinkedBlockingQueue底层使用列表来保存队列元素。下面我们先对LinkedBloc...原创 2018-05-15 22:47:54 · 1024 阅读 · 0 评论