Java并发包源码解析
收藏

Java并发包(java.util.concurrent)源码解析。 主要基于jdk1.6。 更高jdk版本的并发包源码解析也会陆续加进来。

分享到: Sina Tec

最近更新文章

Jdk1.8 JUC源码增量解析(2)-atomic-LongAdder和LongAccumulator

Jdk1.8 JUC源码增量解析(2)-atomic-LongAdder和LongAccumulator 作者:大飞   功能简介: LongAdder是jdk1.8提供的累加器,基于Striped64实现。它常用于状态采集、统计等场景。AtomicLong也可以用于这种场景,但在线程竞争激烈的情况下,LongAdder要比AtomicLong拥有更高的吞吐量,但会耗费更多的内存空间 ...
BrokenDreams 评论(0) 有4535人浏览 2015-11-27 19:49

Jdk1.8 JUC源码增量解析(1)-atomic-Striped64

Jdk1.8 JUC源码增量解析(1)-atomic-Striped64 作者:大飞   功能简介: Striped64是jdk1.8提供的用于支持如Long累加器,Double累加器这样机制的基础类。 Striped64的设计核心思路就是通过内部的分散计算来避免竞争(比如多线程CAS操作时的竞争)。 Striped64内部包含一个基础值和一个单元哈希表。没有竞争的情况下,要累加 ...
BrokenDreams 评论(0) 有4409人浏览 2015-11-27 19:41

Jdk1.7 JUC源码增量解析(6)-Phaser

Jdk1.7 JUC源码增量解析(6)-Phaser 作者:大飞   功能简介: Phaser是jdk1.7提供的类似于CyclicBarrier和CountDownLatch的同步机制。 它支持更灵活的使用方式:1.使用过程中可以随时注册和注销参与者;2.不同于CyclicBarrier,分离出"到达"和"等待"机制;3.支持结束,默认情况 ...
BrokenDreams 评论(0) 有2120人浏览 2015-11-26 14:26

Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法

Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法 作者:大飞   概述: 这篇会看一下ForkJoin框架的其他过程,如取消任务、关闭Pool,以及前面没分析到一些方法。   源码分析:   前面我们看到,ForkJoinTask本身也是Future的实现,所以也会有取消过程,看下实现: public boole ...
BrokenDreams 评论(0) 有2995人浏览 2015-11-21 23:14

Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程

Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程 作者:大飞   概述: 这篇通过分析一个ForkJoin任务的执行过程来分析ForkJoin的相关代码,主要侧重于分裂(fork)/合并(join)过程。   源码分析:          还是先看一个代码示例,这个示例介绍篇出现过,这里只贴出任务代码: publi ...
BrokenDreams 评论(1) 有3282人浏览 2015-11-20 16:47

Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程

Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程 作者:大飞   概述: 这篇通过分析一个非ForkJoin(Runnable或者Callable)任务的执行过程来分析ForkJoin的相关代码,注意这里说的非ForkJoin任务实际上也是ForkJoinTask,只是没有分裂(fork)/合并(join)过程。   源码分析:   ...
BrokenDreams 评论(0) 有3866人浏览 2015-11-20 11:50

Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览

Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览 作者:大飞   ForkJoin框架是什么?        ForkJoin框架是jdk1.7提供的一个并行计算框架。 ForkJoin框架能干什么?        首先ForkJoin框架是针对一些符合ForkJoin模型的任务而设计的,那什么是ForkJoin模型呢?看个图先:    ...
BrokenDreams 评论(0) 有3259人浏览 2015-11-19 17:31

Jdk1.7 JUC源码增量解析(1)-FutureTask

Jdk1.7 JUC源码增量解析(1)-FutureTask 作者:大飞   功能简介: FutureTask是一种异步任务(或异步计算),举个栗子,主线程的逻辑中需要使用某个值,但这个值需要负责的运算得来,那么主线程可以提前建立一个异步任务来计算这个值(在其他的线程中计算),然后去做其他事情,当需要这个值的时候再通过刚才建立的异步任务来获取这个值,有点并行的意思,这样可以缩短整个 ...
BrokenDreams 评论(0) 有4102人浏览 2015-11-12 18:30

Jdk1.6 JUC源码解析(27)-Exchanger

Jdk1.6 JUC源码解析(27)-Exchanger 作者:大飞   功能简介: Exchanger是一种线程间安全交换数据的机制。可以和之前分析过的SynchronousQueue对比一下:线程A通过SynchronousQueue将数据a交给线程B;线程A通过Exchanger和线程B交换数据,线程A把数据a交给线程B,同时线程B把数据b交给线程A。可见,Synchronou ...
BrokenDreams 评论(2) 有3320人浏览 2015-11-03 03:18

Jdk1.6 JUC源码解析(26)-ConcurrentSkipListMap、ConcurrentSkipListSet

Jdk1.6 JUC源码解析(26)-ConcurrentSkipListMap、ConcurrentSkipListSet 作者:大飞   功能简介: ConcurrentSkipListMap是一种线程安全的有序的Map。一般我们使用有序Map,不要求线程安全的情况下,可以使用TreeMap,要求线程安全的话,就可以使用ConcurrentSkipListMap。 Concu ...
BrokenDreams 评论(1) 有5260人浏览 2015-11-03 03:08

Jdk1.6 JUC源码解析(25)-ConcurrentHashMap

Jdk1.6 JUC源码解析(25)-ConcurrentHashMap 作者:大飞   功能简介: ConcurrentHashMap是一种线程安全的HashMap。相对于HashTable和Collections.synchronizedMap(),Concurre ...
BrokenDreams 评论(2) 有2478人浏览 2015-10-30 19:02

Jdk1.6 JUC源码解析(24)-ConcurrentLinkedQueue

Jdk1.6 JUC源码解析(24)-ConcurrentLinkedQueue 作者:大飞   功能简介: ConcurrentLinkedQueue是一种基于单向链表实现的无界的线程安全队列。队列中的元素遵循先入先出(FIFO)的规则。新元素插入到队列的尾部,从队列头部取出元素。 ConcurrentLinkedQueue内部采用一种wait-free(无等待)算法来实现。 ...
BrokenDreams 评论(0) 有1832人浏览 2015-10-29 19:02

Jdk1.6 JUC源码解析(23)-CopyOnWriteArrayList、CopyOnWriteArraySet

Jdk1.6 JUC源码解析(23)-CopyOnWriteArrayList、CopyOnWriteArraySet 作者:大飞   功能简介: CopyOnWriteArrayList是一种线程安全的ArrayList。顾名思义,有写操作时 ...
BrokenDreams 评论(0) 有1745人浏览 2015-10-29 18:55

Jdk1.6 JUC源码解析(22)-LinkedBlockingDeque

Jdk1.6 JUC源码解析(22)-LinkedBlockingDeque 作者:大飞   功能简介: LinkedBlockingDeque是一种基于双向链表实现的有界的(可选的,不指定默认int最大值)阻塞双端队列。        双端队列一般适用于工作密取模式,即每个消费者都拥有自己的双端队列,如果某个消费者完成了自己队列的全部任务,可以到其他消费者双端队列尾部秘密获取 ...
BrokenDreams 评论(0) 有1537人浏览 2015-10-29 18:47

Jdk1.6 JUC源码解析(21)-ExecutorCompletionService

Jdk1.6 JUC源码解析(21)-ExecutorCompletionService 作者:大飞   功能简介: ExecutorCompletionService用于执行一批任务,然后按照任务执行完成的顺序来获取任 ...
BrokenDreams 评论(0) 有1801人浏览 2015-10-28 19:37

Jdk1.6 JUC源码解析(20)-Executors

Jdk1.6 JUC源码解析(20)-Executors 作者:大飞   功能简介: Executors是JUC包提供的一个工具性质的帮助类,它针对ExecutorService、ScheduledExecutorService、ThreadFactory和Callable提供了一系列工厂方法和工具方法。 源码分析: 首先看下针对ExecutorService提供的一些工 ...
BrokenDreams 评论(0) 有2066人浏览 2015-10-28 19:28

Jdk1.6 JUC源码解析(19)-ScheduledThreadPoolExecutor

Jdk1.6 JUC源码解析(19)-ScheduledThreadPoolExecutor 作者:大飞   功能简介: ScheduledThreadPoolExecutor是一种类似Timer的定时器或者说是调度器,和Timer比起来主 ...
BrokenDreams 评论(0) 有1818人浏览 2015-10-27 19:46

Jdk1.6 JUC源码解析(18)-DelayQueue

Jdk1.6 JUC源码解析(18)-DelayQueue 作者:大飞   功能简介: DelayQueue是一种无界的阻塞队列,队列里只允许放入可以"延期"的元素,队列中列头的元素是最先"到期"的元素。如果队列中没有任何元素"到期",尽管队列中有元素,也不能从队列头获取到任何元素。 源码分析: 首先还是看一下 ...
BrokenDreams 评论(0) 有2293人浏览 2015-10-27 19:25

Jdk1.6 JUC源码解析(17)-ThreadPoolExecutor

Jdk1.6 JUC源码解析(17)-ThreadPoolExecutor 作者:大飞   功能简介: ThreadPoolExecutor是JUC包中提供的线程池,使用ThreadPoolExecutor的好处一方面是能重用线程资源,避免重复创建线程带来的开销;另一方面是ThreadPoolExecutor提供了内部资源(线程、任务)的管理功能,方便我们监控线程池工作状态。 ...
BrokenDreams 评论(0) 有2434人浏览 2015-10-27 08:44

Jdk1.6 JUC源码解析(16)-FutureTask

Jdk1.6 JUC源码解析(16)-FutureTask 作者:大飞   功能简介: FutureTask是一种异步任务(或异步计算),举个栗子,主线程的逻辑中需要使用某个值,但这个值需要复杂的运算得来,那么主线程可以提前建立一个异步任务来计算这个值(在其他的线程中计算),然后去做其他事情,当需要这个值的时候再通过刚才建立的异步任务来获取这个值,有点并行的意思,这样可以缩短整个主 ...
BrokenDreams 评论(0) 有2554人浏览 2015-10-26 19:31
  • 专栏创建者:BrokenDreams
  • 创建时间:2015-12-09 12:59:38
  • 专栏文章数:35篇
  • 专栏被浏览:97941 次

本专栏热门文章

最新评论

acquire方法里面为什么tryAcquire会被调用多次?第一次tryAcquire失败了就表明 ...
有贝无患 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
library_call.cpp 里面的内联操作 inline_unsafe_ordered_stor ...
zwy_qz 评论了 Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
您好,正在学习您的文章,中间有一段,一直没明白:“private void setHead(Node ...
sunwang810812 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
好文!跟着读了一遍源码,准备自己再做个笔记,画个图
k19421 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
有个问题不明白,共享模式,释放的时候调用doReleaseShared,for循环里面unparkSu ...
xuyb2 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
yuenkin 写道棒!!!赞~感谢支持~~!
BrokenDreams 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
棒!!!赞~
yuenkin 评论了 Jdk1.6 JUC源码解析(6)-locks-AbstractQueu ...
好文章,自己看源码遇到好多不理解的地方。这里都能找到。。。源码分析从例子上出发,才好理解。。。单个类分 ...
在世界的中心呼喚愛 评论了 Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJ ...
这么好,怎么没人赞呢!!!
carlosfu 评论了 Jdk1.6 JUC源码解析(26)-ConcurrentSkipLis ...
pcgreat 写道写的很好 。 感谢支持
BrokenDreams 评论了 Jdk1.6 JUC源码解析(27)-Exchanger
Global site tag (gtag.js) - Google Analytics