Concurrent Collections

java.util.concurrent软件包对 Java Collections Framework 进行了许多补充。通过提供的收集interface可以很容易地对它们进行分类:

  • BlockingQueue定义了先进先出数据结构,当您try添加到完整队列或从空队列中检索时,该数据结构将阻止或超时。

  • ConcurrentMapjava.util.Map的子interface,它定义了有用的原子操作。这些操作仅在存在键时才删除或替换键值对,或者仅在键不存在时才添加键值对。使这些操作原子化有助于避免同步。 ConcurrentMap的标准通用实现是ConcurrentHashMap,它是HashMap的并发模拟。

  • ConcurrentNavigableMapConcurrentMap的子interface,它支持近似匹配。 ConcurrentNavigableMap的标准通用实现是ConcurrentSkipListMap,它是TreeMap的并发模拟。

所有这些集合都通过在将对象添加到集合的操作与访问或删除该对象的后续操作之间定义事前事前关系来帮助避免内存一致性错误