JDK1.8
0oo踏雪无痕oo0
一个死宅死宅的小胖子,一个天天加班的程序猿...
展开
-
ScheduledThreadPoolExecutor学习笔记
目录介绍原理重要组件ScheduledFutureTaskDelayedWorkQueue主要源码介绍ScheduledThreadPoolExecutor在ThreadPoolExecutor基础上另外提供了延迟执行任务和定时执行任务的功能。ScheduledThreadPoolExecutor可以用来代替Timer。Timer是JDK1.3 提供的一个定时执行任务...原创 2020-04-20 13:30:54 · 672 阅读 · 0 评论 -
ThreadPoolExecutor学习笔记
Table of Contents介绍重要组件介绍ReentrantLock mainLockWorkerBlockingQueue workQueueCondition terminationThreadFactory threadFactoryRejectedExecutionHandler handlerexecute 方法原理改变线程池状态的方法工作线程控制任...原创 2020-04-09 17:33:22 · 245 阅读 · 0 评论 -
AbstractExecutorService 笔记
Table of Contents介绍ExecutorExecutorService方法定义CompletionServiceExecutorCompletionServiceAbstractExecutorService介绍AbstractExecutorService 是 JDK 线程池 ThreadPoolExecutor,ForkJoinPool 等的...原创 2020-03-16 12:50:53 · 1160 阅读 · 0 评论 -
AtomicInteger 学习笔记
目录介绍原理方法列表Number 方法实现AtomicInteger 操作整形数据的方法列表介绍AtomicInteger 是 JDK1.5 之后引入的原子更新整形数据的工具。同期引入的还有另外 11 个原子操作工具,这个工具都能提供简单高效并且多线程安全的原子操作。原理AtomicInteger 能够保证线程安全的原因是 AtomicInteger 的整形...原创 2020-02-11 14:00:06 · 205 阅读 · 0 评论 -
FutureTask学习笔记
目录Future 接口介绍RunnableFutureFutureTask介绍原理代码详情Future 接口介绍Future 表示一个异步计算,提供了用于检查异步计算是否完成,等待异步计算结果,取消异步计算任务等方法。等待获取异步计算结果会阻塞当前线程,直到超时或者获取到异步计算的结果。如果异步计算已经完成,取消计算任务的方法将不会生效。如果希望利用 Futur...原创 2020-01-15 20:25:15 · 1341 阅读 · 0 评论 -
SynchronousQueue 学习笔记
目录介绍原理栈 transfer 操作逻辑队列 transfer 操作逻辑awaitFulfill出队方法入队方法介绍SynchronounsBlockingQueue 是一种同步阻塞队列,每当有线程操作添加元素时,添加线程会一直阻塞直到有其他线程获取这个元素。SynchronounsBlockingQueue 不想其他的阻塞队列有个数组或者链表的数据结构存储...原创 2020-01-03 09:57:34 · 301 阅读 · 0 评论 -
PriorityBlockingQueue 笔记
目录介绍实现原理初始化方法出队方法入队方法二叉堆相关方法迭代器介绍PriorityBlockingQueue 是基于二叉堆(binary heap)实现的有序阻塞队列。队列容量上线是 Integer.MAXVALUE - 8,如果一直往队列中添加元素,并且来不及消费,可能会产生 OOM。PriorityBlockingQueue 的排序策略和 PriorityQue...原创 2019-12-20 15:40:16 · 186 阅读 · 0 评论 -
LinkedBlockingQueue学习笔记
Table of Contents介绍数据存储设计构造方法介绍入队方法介绍出队方法介绍迭代器介绍其他方法介绍介绍LinkedBlockingQueue 是一个基于单向链表和双锁队列算法实现的先进先出的同步队列。头部元素是最早进入队列的元素,尾部元素时最晚进入队列的元素。在添加元素时,将会在单向链表的末尾添加元素。ArrayBlockingQueue 由于是循环数组...原创 2019-12-09 14:29:30 · 318 阅读 · 0 评论 -
StampedLock 学习笔记
目录介绍源码分析介绍StampedLock 是一种读写锁,但是是 JUC 锁中比较特殊的一个。因为它的实现逻辑不依赖 AbstractQueuedSynchronizer,线程等待和唤醒也不依赖 LockSupport(而是直接使用 Unsafe.park 和 unpark 方法。当然 LockSupport 本身也是使用 Unsafe.park 和 unpark 方法实现的...原创 2019-11-01 13:32:45 · 204 阅读 · 0 评论 -
LockSupport 学习笔记
Table of Contents概念作用Park 方法的实现UnPark 方法的实现概念许可:一种类似信号量((java.util.concurrent.Semaphore)的技术,用来标记当前线程是否允许阻塞。但是不同于信号量可以设置多个信号标识,许可只有一个是否有效的标识。如果许可是有效的,可以理解为当前线程已经被阻塞;如果许可无效,那么可以理解线程未被阻塞。...原创 2019-07-17 08:45:08 · 135 阅读 · 0 评论