JUC包
多栖码农
喜欢研究底层源码,不定期创作和分享,喜欢的点点关注。
路很长,长到没时间回头;路很短,短到需要反复的走。
历史的标签无法标注多样的人生,清醒的人生无需被标签界定。
展开
-
FutureTask源码分析
java异步任务之FutureTask源码分析原创 2023-11-08 10:33:20 · 258 阅读 · 0 评论 -
ThreadPoolExecutor源码解析(二)
ThreadPoolExecutor是线程池执行器,在定义好线程池的基础信息(核心线程数、最大线程数、空闲线程驻留时间、线程队列、创建线程的工厂、拒绝策略)后,可以将线程提交给执行器执行,对使用者是透明的原创 2023-10-31 14:20:26 · 37 阅读 · 0 评论 -
ThreadPoolExecutor源码分析(一)
ThreadPoolExecutor是线程池执行器,在定义好线程池的基础信息(核心线程数、最大线程数、空闲线程驻留时间、线程队列、创建线程的工厂、拒绝策略)后,可以将线程提交给执行器执行,对使用者是透明的原创 2023-10-31 14:18:57 · 142 阅读 · 0 评论 -
LinkedBlockingQueue源码解析
LinkedBlockingQueue是非固定容量队列,内部是通过链表存放数据,并通过两把互斥锁(分别为取时互斥锁和放时互斥锁,这也是与ArrayBlockingQueue的本质区别,这样可以提高性能)来控制访问数据的同步问题。提供的方法与ArrayBlockingQueue基本是一致的,下面只介绍下有差异的地方,细节上看ArrayBlockingQueue的源码解读就行原创 2023-10-26 15:30:11 · 101 阅读 · 0 评论 -
ArrayBlockingQueue源码解析
ArrayBlockingQueue是固定容量队列,不可扩容,内部是通过Object数组存放数据,并通过一把互斥锁来控制访问数据的同步问题原创 2023-10-26 14:59:16 · 157 阅读 · 0 评论 -
CyclicBarrier使用示例
CyClicBarrier使用示例原创 2023-10-24 14:38:50 · 43 阅读 · 0 评论 -
CyclicBarrier原理及源码解析
通过AQS的互斥锁机制(ReentrantLock)+条件(Condition)实现的,用于一组线程相互之间等待,直到到达某个公共屏障点 (common barrier point),再继续执行。常用于多线程计算数据,当所有线程都完成执行后,在`CyclicBarrier`回调线程中合并计算原创 2023-10-24 14:20:30 · 53 阅读 · 0 评论 -
CountDownLatch
CountDownLatch源码分析:通过AQS的共享锁机制实现的,用于一个或多个线程等待其他线程完成的一组操作原创 2023-10-23 14:31:51 · 318 阅读 · 0 评论 -
Semaphore(信号量)
信号量就是通过AQS的共享锁机制来实现的原创 2023-10-19 14:17:34 · 58 阅读 · 0 评论 -
ReentrantReadWriteLock(可重入读写锁)
基于AQS的互斥锁(写)和共享锁(读)实现的可重入读写锁原创 2023-10-19 14:14:22 · 56 阅读 · 0 评论 -
ReentrantLock(可重入锁)
基于AQS实现的可重入锁,包括公平和非公平两种实现方式。公平与非公平的差异:1、非公平:主动抢锁,抢锁失败,进入AQS实现的获取锁流程(排队去)2、公平锁:不主动抢锁,直接进入AQS的获取锁方法(排队去),这也是公平与非公平锁(主动尝试抢锁)的区别可重入主要体现在对同一线程访问资源时,对资源state的值叠加原创 2023-10-18 10:00:25 · 112 阅读 · 0 评论 -
AQS原理及源码解析
JAVA并发编程、AQS源码解析原创 2023-10-17 14:37:17 · 237 阅读 · 0 评论