java并发集合有哪些

java并发集合

       数据结构(Data Structure)是编程中的基本元素,几乎每个程序都使用了一种或多种数据结构来存储和管理数据。java API提供了包含接口、类和算法的java集合框架,它实现了可用在程序中的大量数据结构。

      当需要在并发程序中使用数据集合时,必须要谨慎地选择相应的实现方式。大多数集合类并不能直接用于并发应用,因为他们没有对本身数据的并发访问进行控制,如果一些并发任务共享一个不适用于病发任务的数据结构,将会遇到数据不一致性的错误,并将影响程序的正确运行,这类数据结构的一个例子就是ArrayList。

     java提供了一些可以用于并发程序中的数据集合,他们不会引起任何问题,一般来说,java提供了两类适用于并发应用的集合:

          (1)阻塞式集合(blocking collection):这类集合包括添加和移除数据的方法。当集合已满或者为空时,被调用的添加或者 移除方法就不能立即执行,那么调用这个饭方法的线程将被阻塞,一直到该方法可以被成功执行。

          (2)非阻塞式集合(Non-blocking collection):这类集合也包括添加和移除数据的方法。如果集合已满或者为空时,在调用添加或者移除方法时会返回null或者抛出异常,但是调用这个方法的线程不会被阻塞。

   以下就是java常用的并发集合:

非阻塞式列表对应的实现类:ConcurrentLinkedDeque

阻塞式列表对应的实现类:LinkedBlockingDeque

用于数据生成或者消费的阻塞式列表对应的实现类:LinkedTransferQueue

按优先级排序列表元素的阻塞式列表对应的实现类:PriorityBlockingQueue

带有延迟列表元素的阻塞式列表对应的实现类:DelayQueue

非阻塞式列表可遍历映射对应的饿实现类:ConcurrentSkipListMap

随机数字对应的实现类:ThreadLockRandom

原子变量对应的实现类:AtomicLong和AtomicIntegerArray


之后在对每一个并发集合类作统一讲解,描述,在这就告诉大家都多少并发集合,大家也可以自己的查查了解了解哦!


你可能感兴趣的:(java,java,面试,java多线程面试)