JDK源码
笑吥语
这个作者很懒,什么都没留下…
展开
-
CompletableFuture实际操作的源码追究
CompletableFuture实际操作的源码追究在此之前整体框架:Completion:封装了执行任务,以及该任务所依赖的其他任务的结果,在执行任务时进行不同的操作。CompletableFuture:对任务结果的一些操作的封装,以及构建和处理Completion任务依赖的关系。任务初始化:supplyAsync public static <U> CompletableFuture<U> supplyAsync(Supplier<U> suppl原创 2020-09-04 19:54:48 · 571 阅读 · 0 评论 -
FutureTask源码分析
目录FutureTask的类变量和实例变量源码run方法: 执行任务setException方法: 设置异常结果set方法: 设置正常结果finishCompletion方法get方法: 获取任务的结果awaitDone方法: 阻塞调用get的线程removeWaiter方法FutureTask的类变量和实例变量/** * The run state of this task, initially NEW. The run state * transitions to a terminal st原创 2020-06-11 23:02:38 · 186 阅读 · 0 评论 -
ConcurrentHashMap源码分析
目录介绍源码分析字段的含义sizeCtlnextTableForwardingNode构造方法tabkeSizeFor方法tabAt方法initTable方法spread方法resizeStamp方法putVal方法addCount方法transfer方法介绍相对线程安全:相对线程安全就是我们通常意义上所讲的线程安全,它需要保证对这个对象单次的操作是线程安全的,我们在调用的时候不需要进行额外的保障措施,但是对于一些特定顺序的连续调用,就可能需要在调用端使用额外的同步手段来保证调用的正确性。数据结构:数原创 2020-06-07 22:06:30 · 366 阅读 · 0 评论 -
LongAdder和AtomicLong源码分析
概述介绍AtomicLongLongAdder使用do-while循环进行CAS操作直到数据操作成功将变更的大小存储在base中,如果存在竞争,每个线程的变更都存储在所属线程的cell中。CAS样例代码 public final native boolean compareAndSetLong(Object o, long offset, long expected,原创 2020-06-05 15:42:44 · 242 阅读 · 0 评论 -
LinkedHashMap源码阅读(略带HashMap源码)
目录LinkedHashMap源码阅读预先描述创建LinkedHashMap<1>、super(initialCapacity, loadFactor):初始化<2>、tableSizeFor(initialCapacity):确定threshold2.1>、Integer.numberOfLeadingZeros(cap - 1)过程的例子`initialCapacity=10`一些小tips存入k-v:put(k-v)调用过程put方法hash(Object key)方法p原创 2020-05-26 01:25:34 · 753 阅读 · 1 评论