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