源码
0oo踏雪无痕oo0
一个死宅死宅的小胖子,一个天天加班的程序猿...
展开
-
ScheduledThreadPoolExecutor学习笔记
目录介绍原理重要组件ScheduledFutureTaskDelayedWorkQueue主要源码介绍ScheduledThreadPoolExecutor在ThreadPoolExecutor基础上另外提供了延迟执行任务和定时执行任务的功能。ScheduledThreadPoolExecutor可以用来代替Timer。Timer是JDK1.3 提供的一个定时执行任务...原创 2020-04-20 13:30:54 · 715 阅读 · 0 评论 -
ThreadPoolExecutor学习笔记
Table of Contents介绍重要组件介绍ReentrantLock mainLockWorkerBlockingQueue workQueueCondition terminationThreadFactory threadFactoryRejectedExecutionHandler handlerexecute 方法原理改变线程池状态的方法工作线程控制任...原创 2020-04-09 17:33:22 · 275 阅读 · 0 评论 -
AbstractExecutorService 笔记
Table of Contents介绍ExecutorExecutorService方法定义CompletionServiceExecutorCompletionServiceAbstractExecutorService介绍AbstractExecutorService 是 JDK 线程池 ThreadPoolExecutor,ForkJoinPool 等的...原创 2020-03-16 12:50:53 · 1247 阅读 · 0 评论 -
AtomicInteger 学习笔记
目录介绍原理方法列表Number 方法实现AtomicInteger 操作整形数据的方法列表介绍AtomicInteger 是 JDK1.5 之后引入的原子更新整形数据的工具。同期引入的还有另外 11 个原子操作工具,这个工具都能提供简单高效并且多线程安全的原子操作。原理AtomicInteger 能够保证线程安全的原因是 AtomicInteger 的整形...原创 2020-02-11 14:00:06 · 247 阅读 · 0 评论 -
FutureTask学习笔记
目录Future 接口介绍RunnableFutureFutureTask介绍原理代码详情Future 接口介绍Future 表示一个异步计算,提供了用于检查异步计算是否完成,等待异步计算结果,取消异步计算任务等方法。等待获取异步计算结果会阻塞当前线程,直到超时或者获取到异步计算的结果。如果异步计算已经完成,取消计算任务的方法将不会生效。如果希望利用 Futur...原创 2020-01-15 20:25:15 · 1744 阅读 · 0 评论 -
SynchronousQueue 学习笔记
目录介绍原理栈 transfer 操作逻辑队列 transfer 操作逻辑awaitFulfill出队方法入队方法介绍SynchronounsBlockingQueue 是一种同步阻塞队列,每当有线程操作添加元素时,添加线程会一直阻塞直到有其他线程获取这个元素。SynchronounsBlockingQueue 不想其他的阻塞队列有个数组或者链表的数据结构存储...原创 2020-01-03 09:57:34 · 328 阅读 · 0 评论 -
PriorityBlockingQueue 笔记
目录介绍实现原理初始化方法出队方法入队方法二叉堆相关方法迭代器介绍PriorityBlockingQueue 是基于二叉堆(binary heap)实现的有序阻塞队列。队列容量上线是 Integer.MAXVALUE - 8,如果一直往队列中添加元素,并且来不及消费,可能会产生 OOM。PriorityBlockingQueue 的排序策略和 PriorityQue...原创 2019-12-20 15:40:16 · 227 阅读 · 0 评论 -
LinkedBlockingQueue学习笔记
Table of Contents介绍数据存储设计构造方法介绍入队方法介绍出队方法介绍迭代器介绍其他方法介绍介绍LinkedBlockingQueue 是一个基于单向链表和双锁队列算法实现的先进先出的同步队列。头部元素是最早进入队列的元素,尾部元素时最晚进入队列的元素。在添加元素时,将会在单向链表的末尾添加元素。ArrayBlockingQueue 由于是循环数组...原创 2019-12-09 14:29:30 · 345 阅读 · 0 评论 -
ArrayBlockingQueue 学习笔记
Table of Contents概念queueAbstractQueueBlockingQueueArrayBlockingQueueItrsItrArrayBlockingQueue概念queue(队列)是一种基础的数据结构,它只允许在一端进行入队列操作,另一端出队列操作,是一种先进先出(FIFO),或者按照其他定义的排序规则排列的线性表。colle...原创 2019-12-03 14:49:42 · 446 阅读 · 0 评论 -
StampedLock 学习笔记
目录介绍源码分析介绍StampedLock 是一种读写锁,但是是 JUC 锁中比较特殊的一个。因为它的实现逻辑不依赖 AbstractQueuedSynchronizer,线程等待和唤醒也不依赖 LockSupport(而是直接使用 Unsafe.park 和 unpark 方法。当然 LockSupport 本身也是使用 Unsafe.park 和 unpark 方法实现的...原创 2019-11-01 13:32:45 · 227 阅读 · 0 评论 -
JUC 锁学习笔记
Table of ContentsLockReentrantLockReadWriteLockReentrantReadWriteLockLockLock 是定义锁的接口,位于 java.util.concurrent.locks 包下。锁时用来控制线程访问共享资源的工具,比起 Synchronized 关键词实现的同步方式,锁更加灵活,并且能够支持静态条件(Condit...原创 2019-10-15 13:10:48 · 242 阅读 · 0 评论 -
Java AbstractOwnableSynchronizer 学习笔记
目录同步器AbstractOwnableSynchronizer 类介绍AbstractQueuedSynchronizerAbstractQueuedSynchronizer 子类实现的方法介绍tryAcquiretryRelease同步器同步器为多线程环境下多个线程访问修改同一个资源时,提供线程同步、互斥、等待等一系列功能。JDK 提供的主要同步器类继承如下...原创 2019-09-18 21:45:59 · 339 阅读 · 0 评论 -
Java Condition学习笔记
Table of Contents作用接口定义ConditionObject 实现类AbstractQueuedSynchronizerNodeConditionObject作用Condition 是 jdk1.5 引入的用于代替监视器方法,比如 wait,notify,notifyAll,提供更加易用和灵活的同步阻塞方法。Condition 翻译暂时翻译为竞...原创 2019-08-22 13:15:24 · 279 阅读 · 0 评论 -
LockSupport 学习笔记
Table of Contents概念作用Park 方法的实现UnPark 方法的实现概念许可:一种类似信号量((java.util.concurrent.Semaphore)的技术,用来标记当前线程是否允许阻塞。但是不同于信号量可以设置多个信号标识,许可只有一个是否有效的标识。如果许可是有效的,可以理解为当前线程已经被阻塞;如果许可无效,那么可以理解线程未被阻塞。...原创 2019-07-17 08:45:08 · 163 阅读 · 0 评论