J.U.C 包知识大钢

2333J.U.C

JAVA 并发包分类详情。

1. 并发工具类

  • CountDownLatch(闭锁)
    让主线程等待一组事件发生后继续执行,事件指的是 CountDownLatch 里的 countDown() 方法,CountDownLatch

  • CyclicBarrier(栅栏)
    等待其他线程,且会阻塞自己当前线程,所有线程必须同时到达栅栏位置后,才能继续执行;也可以出发执行另外一个预先设置的线程。,CyclicBarrier

  • Semaphore(信号量)
    控制某个资源可被同时访问的线程个数, Semaphore

  • Exchanger(交换器)
    两个线程到达同步点,相互交互数据, Exchanger

2. collections

  • BlockingQueue
    主要用于生产者-消费者模式,在多场景时生产者线程在队列尾部添加元素,而消费者线程则在队列头部消费元素,通过这种方式能够达到将任务的生产和消费进行隔离的目的。

1)、ArrayBlockingQueue: 一个由数组结构组成的有界阻塞队列;
2)、LinkedBlockingQueue: 一个由链表结构组成的有界/无界阻塞队列;
3)、PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列;
4)、DealyQueue: 一个使用优先级队列实现的无界阻塞队列;
5)、SynchronousQueue: 一个不存储元素的阻塞队列;
6)、LinkedTransferQueue: 一个由链表结构组成的无界阻塞队列;
7)、LinkedBlockDeque: 一个由链表结构组成的双向阻塞队列;