`
BrokenDreams
  • 浏览: 248953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
68ec41aa-0ce6-3f83-961b-5aa541d59e48
Java并发包源码解析
浏览量:97922
社区版块
存档分类
最新评论
文章列表
Jdk1.7 ForkJoin框架源码解析汇总     Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览   Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程   Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程   Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法   完毕!   欢迎加入扣扣群一起交流 329019348(高级交流)  51317874(初级交流+灌水)             ...
disruptor-3.3.2源码解析汇总   disruptor-3.3.2源码解析(1)-序列   disruptor-3.3.2源码解析(2)-队列   disruptor-3.3.2源码解析(3)-发布事件   disruptor-3.3.2源码解析(4)-处理事件   disruptor-3.3.2源码解析(5)-框架支持   完毕!   欢迎加入扣扣群一起交流 329019348(高级交流)  51317874(初级交流+灌水)
Jdk1.6 集合框架源码解析汇总   非并发:        Jdk1.6 Collections Framework源码解析(1)-ArrayList        描述:动态扩容的数组。          Jdk1.6 Collections Framework源码解析(2)-LinkedList        描述:双向链表。               Jdk1.6 Collections Framework源码解析(3)-ArrayDeque        描述:动态扩容的数组 + 头尾指针。          Jdk1.6 Collections ...
Jdk1.6 JUC源码解析汇总   Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX   Jdk1.6 JUC源码解析(2)-atomic-AtomicXXXArray   Jdk1.6 JUC源码解析(3)-atomic-AtomicXXXFieldUpdater   Jdk1.6 JUC源码解析(4)-atomic-AtomicStampedReference、AtomicMarkableReference   Jdk1.6 JUC源码解析(5)-locks-LockSupport   Jdk1.6 JUC源码解析(6)-locks-Abst ...
Jdk1.6 Collections Framework源码解析(12)-TreeMap、TreeSet 作者:大飞   功能简介: TreeMap是一种有序的Map(K,V)容器,Key在容器中按照某种顺序排列,该顺序由给定的比较器或者Key自身的顺序来决定。 在TreeMap内部,所有的Key由红黑 ...
Jdk1.6 Collections Framework源码解析(11)-EnumSet 作者:大飞   功能简介: EnumSet是一种针对Enum类型提供的特殊的Set,每个EnumSet只能基于一个Enum类型来建立。 EnumSet内部采用位域的方式建立(相当于bit数组),所以操作起来非常高效(几乎所有的基本操作都能在常数时间内完成),包括retainAll和retainAll这种批量操作也一样。 EnumSet的迭代器中元素顺序按照Enum的自然序(即定义顺序)排列;迭代器是弱一致的,不会抛出ConcurrentModificationException。 E ...
Java与锁的一些简单总结 作者:大飞   前言        从开始写Java到现在,从开始不知道锁是什么,怎么用,更不知道为什么要用。到现在能够在必要的场景下正确的使用一些锁。这过程中经历了对锁的不断尝试和理解,这 ...
关于Java String的一些总结 作者:大飞   不变模式设计        String是典型的不变模式设计。主要体现在两点:        1.String Class由final修饰,保证了无法产生可改变String语义的子类。        2.一些有"修改"行为的方法都会产生新的String实例,如concat、replace等方法。   ==相关的问题        看一些常见的判断String相等的问题,给一段代码: public class StringEqualsTest { public static fi ...
Jdk1.8 JUC源码增量解析(2)-atomic-LongAdder和LongAccumulator 作者:大飞   功能简介: LongAdder是jdk1.8提供的累加器,基于Striped64实现。它常用于状态采集、统计等场景。AtomicLong也可以用于这种场景,但在线程竞争激烈的情况下,LongAdder要比AtomicLong拥有更高的吞吐量,但会耗费更多的内存空间。 LongAccumulator和LongAdder类似,也基于Striped64实现。但要比LongAdder更加灵活(要传入一个函数接口),LongAdder相当于是LongAccumulat ...
Jdk1.8 JUC源码增量解析(1)-atomic-Striped64 作者:大飞   功能简介: Striped64是jdk1.8提供的用于支持如Long累加器,Double累加器这样机制的基础类。 Striped64的设计核心思路就是通过内部的分散计算来避免竞争(比如多线程CAS操作时的竞争)。 Striped64内部包含一个基础值和一个单元哈希表。没有竞争的情况下,要累加的数会累加到这个基础值上;如果有竞争的话,会将要累加的数累加到单元哈希表中的某个单元里面。所以整个Striped64的值包括基础值和单元哈希表中所有单元的值的总和。 源码分析: 先看一下内 ...
Jdk1.7 JUC源码增量解析(6)-Phaser 作者:大飞   功能简介: Phaser是jdk1.7提供的类似于CyclicBarrier和CountDownLatch的同步机制。 它支持更灵活的使用方式:1.使用过程中可以随时注册和注销参与者;2.不同于CyclicBarrier,分离出"到达"和"等待"机制;3.支持结束,默认情况下,当没有参与者的时候Phaser就结束了;4.支持层级Phaser结构;5.提供针对内部状态的监控方法; 源码分析: 先看一下内部结构: /** * 主状态,分为 ...
Jdk1.7 JUC源码增量解析(5)-ForkJoin-ForkJoin框架其他过程及方法 作者:大飞   概述: 这篇会看一下ForkJoin框架的其他过程,如取消任务、关闭Pool,以及前面没分析到一些方法。   源码分析:   前面我们看到,ForkJoinTask本身也是Future的实现,所以也会有取消过程,看下实现: public boolean cancel(boolean mayInterruptIfRunning) { return setCompletion(CANCELLED) == CANCELLED; ...
Jdk1.7 JUC源码增量解析(4)-ForkJoin-ForkJoin任务的fork/join过程 作者:大飞   概述: 这篇通过分析一个ForkJoin任务的执行过程来分析ForkJoin的相关代码,主要侧重于分裂(fork)/合并(join)过程。   源码分析:          还是先看一个代码示例,这个示例介绍篇出现过,这里只贴出任务代码: public class SumTask extends RecursiveTask<Long>{ private static final int THRESHOLD = 10; p ...
Jdk1.7 JUC源码增量解析(3)-ForkJoin-非ForkJoin任务的执行过程 作者:大飞   概述: 这篇通过分析一个非ForkJoin(Runnable或者Callable)任务的执行过程来分析ForkJoin的相关代码,注意这里说的非ForkJoin任务实际上也是ForkJoinTask,只是没有分裂(fork)/合并(join)过程。   源码分析:          我们看一个非ForkJoin任务的代码示例: public static void main(String[] args) { ForkJoinPool forkJoi ...
Jdk1.7 JUC源码增量解析(2)-ForkJoin-框架概览 作者:大飞   ForkJoin框架是什么?        ForkJoin框架是jdk1.7提供的一个并行计算框架。 ForkJoin框架能干什么?        首先ForkJoin框架是针对一些符合ForkJoin模型的任务而设计的,那什么是ForkJoin模型呢?看个图先:         注:图片来之https://en.wikipedia.org/wiki/Fork%E2%80%93join_model          ForkJoin模型是指一些任务在执行过程中会 ...
Global site tag (gtag.js) - Google Analytics