java.util.concurrent并发包一览

并发容器

阻塞队列

BlockingQueue,阻塞队列接口

BlockingDeque,双端阻塞队列接口

ArrayBlockingQueue,数组构成的有界阻塞队列

LinkedBlockingQueue,链表构成的有界阻塞队列

LinkedBlockingDeque,链表结构的双端阻塞队列

DelayQueue,使用优先级实现的无界阻塞队列,并且元素是Delay的子类,保证元素在到达一定时间才可以取到

PriorityBlockingQueue,支持优先级排序的无解阻塞队列

SynchronousQueue,不存储元素的阻塞队列,生产者放入队列的操作会被阻塞,直到消费者过来取

非阻塞队列

ConcurrentLinkedDequeue,链表实现的双端非阻塞队列

ConcurrentLinkedQueue,链表实现的非阻塞队列

转移队列

TransferQueue,转移队列接口,生产者尝试直接把元素直接转移给消费者

LinkedTransferQueue,转移队列的链表实现,比SynchronousQueue更快

跳表容器

ConcurrentSkipListMap

ConcurrentSkipListSet

ConcurrentTransferQueue

其他容器

CopyOnWriteArrayLIst(Set),写时拷贝

COncurrencyHashMap,并发HashMap

同步设备

Semaphore,信号量

信号量适合用于控制一定数量的线程并执行某些任务,比如只允许同时有size个线程再做一件事情。

CountDownLatch 倒数同步

一个线程调用await方法后,会阻塞地等待计数器被调用countDown直到变成0,可以用来控制几个子任务完成以后再实行某个总结性的任务。

CyclicBarrier 多路线程同步等待

利用await方法实现计数器加1功能,达到指定界限,线程就可以继续往下执行。

Exchanger 线程数据交换

用于交互两个线程之间的对象

原子对象

AtomicBoolean 

AtomicInteger

AtomicIntegerArray

AtomicLong

AtomicLongArray

AbstractQueuedSynchronizer,为实现依赖于先进先出队列的阻塞锁和相关同步器(信号量、事件等等)提供的一个框架,它依靠int值来表示状态

ReadWriteLock,读写锁,读锁是共享锁,写锁是独占锁

ReentrantLock

ReentrantReadWriteLock

Condition

执行器和线程池

Executors

ExecutorService

ThreadPoolExecutor

ScheduledExecutor

你可能感兴趣的:(java.util.concurrent并发包一览)