J.U.C包文档分析目录

1、LockSupport工具使用和源码分析

    LockSupport是提供的一个工具类,主要是用来挂起和唤醒线程,类似于Thread类当中的suspend和resume方法,但是不同的是,LockSupport对线程的挂起和唤醒并不会早上死锁。LockSupport提供的挂起和唤醒也是JUC包对线程操作的一个基础

2、AbstractQueuedSynchronous(ReentrantLock实现及AQS简析)

    AQS基本上整个并发包实现的基础,尝试获取锁,获取成功执行任务,获取失败,将任务放在一个链表当中,每个任务执行结束之后,唤醒链表当中下一个需要执行的任务

3、ReentrantLock使用对比Synchronized

    基于AQS实现的一个锁,在并发包当中我们也可以看到大量的使用ReentrantLock来保证线程安全性

4、ReentrantReadWriteLock使用及源码分析

    基于AQS实现的读写分离锁,适合于写多读少的场景

5、StampedLock使用方式

    是JDK1.8之后提供的一个锁,相比较与ReentrantReadWriteLock更加适合于读多写少的场景

6、CyclicBarrier使用及源码分析

    CyclicBarrier主要是用来处理多个线程任务执行,共同到达一个临界点之后,所有线程在继续执行下去,实现方式是通过使用ReentrantLock来加锁,condition用来挂起和唤醒相关的线程,可以重复使用

7、CountDownLatch使用及源码分析

    基本上和CyclicBarrier功能相同,线程执行到某个临界点时,等到其相关线程都执行成功,然后再接着往下执行,他的实现方式是直接调用AQS来实现

8、java并发包中Semaphore使用及源码分析

    线程计数器,控制同一时间执行线程的数量,基于AQS实现

9、ArrayBlockingQueue源码分析

    基于数组实现的,通过ReentrantLock来保证线程安全,同时内部保存两个condition,分别来表示是否写满,是否为为空,如果写满的话,直到取出一个元素,才能将新的元素添加进去,如果为空的话,写入一个元素,才能取出一个元素

猜你喜欢

转载自blog.csdn.net/summerzbh123/article/details/80963427