并发容器

在 Java 5.0 中增加了 ConcurrentHashMap,用来替代同步且基于散列的 Map,以及CopyOnWriteArrayList,用于在遍历操作为主要操作的情况下代替同步的 List。

Java 5.0 增加了两种新的容器类型:Queue 和 BlockingQueue。它提供了几种实现,包括:ConcurrentLinkedQueue,这是一个传统的先进先出队列,以及 PriorityQueue,这是一个(非并发的)优先队列。

  • Queue 上的操作不会阻塞,如果队列为空,那么获取元素的操作将返回空值。

  • BlockingQueue 扩展了 Queue,增加了可阻塞的插入和获取等操作:

    • 如果队列为空,那么获取元素的操作将一直阻塞,直到队列中出现一个可用的元素。

    • 如果队列已满(对于有界队列来说),那么插入元素的操作将一直阻塞,直到队列中出现可用的空间。

Java 6 引入了 ConcurrentSkipListMap ConcurrentSkipListSet,分别作为同步的 SortedMap SortedSet 的并发替代品。

最后更新于