自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟进阶之路

源码学习总结和分享,向大神看齐

  • 博客(177)
  • 收藏
  • 关注

原创 perf-map-agent源码解析

目录1、create-java-perf-map.sh2、AttachOnce3、Agent_OnAttach4、generate_single_entry5、generate_unfolded_entries perf-map-agent会生成一个/tmp/perf-<pid>.map映射文件,里面包含被JIT即时编译器编译过的Java方法的方法名与编译后生成的机器码的地址映射,perf命令在获取未知的内存地址对应的方法名时会默认读取该文件,从而将perf命令采...

2020-12-01 20:33:36 1664

原创 Java8 FileInputStream / FileDescriptor / FileOutputStream 源码解析

目录一、InputStream二、FileInputStream1、定义2、initIDs3、open0 /close04、read0/readBytes5、skip0 / available0三、FileDescriptor1、定义2、attach /closeAll3、initIDs /sync四、OutputStream五、FileOutputStream1、定义2、initIDs /open0 /close03、wr...

2020-06-26 20:09:00 1374

原创 Java8 File / FileSystem(二) 源码解析

目录1、renameTo /setLastModified2、setReadOnly /setWritable /setReadable /setExecutable /canExecute /canRead /canWrite3、getTotalSpace /getFreeSpace /getUsableSpace4、compareTo /equals / hashCode5、ExpiringCache6、DeleteOnExitHook 本篇...

2020-06-25 18:22:50 1084

原创 Java8 File / FileSystem(一) 源码解析

目录1、separator /pathSeparatorChar2、构造方法3、isAbsolute /getAbsolutePath /getCanonicalPath4、exists /isDirectory /isFile /isHidden /lastModified /length5、createNewFile /createTempFile /delete /deleteOnExit6、mkdir /mkdirs7、list /list...

2020-06-25 18:20:01 4127

原创 Java8 Stream API 之 IntPipeline(三) 源码解析

目录1、reduce /collect2、sum /min /max /count /average /summaryStatistics3、AbstractTask4、ReduceTask5、AbstractShortCircuitTask6、FindTask7、MatchTask8、Spliterator 本篇博客继续上一篇《Java8 Stream API 之 IntPipeline(二) 源码解析》讲解reduce / collect...

2020-06-17 17:56:46 467

原创 Java8 Stream API 之 IntPipeline(二) 源码解析

目录1、map /flatMap /mapToObj /mapToLong /mapToDouble /asLongStream /asDoubleStream 2、limit /skip3、sorted4、distinct /boxed5、findFirst /findAny6、anyMatch /allMatch /noneMatch7、iterator /spliterator8、close /onClose 本篇博...

2020-06-17 09:53:40 399

原创 Java8 Stream API 之 IntPipeline(一) 源码解析

目录一、PipelineHelper / AbstractPipeline二、Sink三、IntPipeline1、filter /peek2、forEach /forEachOrdered3、ForEachOps4、测试用例5、IntStream range/rangeClosed6、ForEachTask7、ForEachOrderedTask本篇博客继续上一篇《Java8 Stream API 之 IntStream 用法全解》探讨IntPipeline..

2020-06-13 22:03:25 929

原创 Java8 Stream API 之 IntStream 用法全解

目录1、创建int流2、filter /map /flatMap /peek3、mapToObj /mapToLong / mapToDouble/asLongStream /asDoubleStream4、forEach /forEachOrdered5、 reduce /collect6、distinct /sorted /limit /skip7、sum /min /max /count /average /summaryStatisti...

2020-05-31 15:09:20 20593 2

原创 Java8 EnumMap / EnumSet 源码解析

目录一、EnumMap1、定义2、put /putAll /get3、remove /clear二、EnumSet1、定义2、noneOf /allOf /of /range3、copyOf /complementOf三、RegularEnumSet1、add /addAll /addRange /complement2、remove /removeAll /clear /retainAll3、size / contains ...

2020-05-28 11:31:49 496

原创 Java8 CompletableFuture(二) 源码解析

目录1、uniWhenCompleteStage /UniWhenComplete2、uniHandleStage /UniHandle3、uniExceptionallyStage /UniExceptionally4、biApplyStage /BiApply5、biAcceptStage /BiAccept6、biRunStage /BiRun7、orApplyStage /OrApply8、orAcceptStage /OrAccept9、or...

2020-05-19 23:50:26 1202

原创 Java8 CompletableFuture(一) 源码解析

目录1、定义2、supplyAsync /runAsync3、completeNull /completeValue /completeThrowable /completeRelay4、thenApply/thenAccept /thenRun5、UniApply /UniAccept /UniRun6、postComplete / postFire7、get / join / getNow / cancel8、Signaller上一篇《Java8...

2020-05-18 17:42:43 1934

原创 Java8 CompletableFuture 用法全解

目录一、创建异步任务1、Future.submit2、supplyAsync /runAsync二、异步回调1、thenApply /thenApplyAsync2、thenAccept /thenRun3、exceptionally4、whenComplete5、handle三、组合处理1、thenCombine /thenAcceptBoth /runAfterBoth2、applyToEither /acceptEither /run...

2020-05-15 19:06:12 111887 29

原创 Java8 ForkJoinTask 源码解析

目录1、定义2、fork3、join /quietlyJoin4、invoke /quietlyInvoke5、complete / quietlyComplete/completeExceptionally6、recordExceptionalCompletion /clearExceptionalCompletion /getException7、invokeAll8、get9、tryUnfork /reinitialize 本篇博客讲解...

2020-05-14 17:26:07 1616

原创 Java8 ForkJoinPool(三) 源码解析

目录1、registerWorker /deregisterWorker2、runWorker3、shutdown /shutdownNow /awaitTermination4、awaitQuiescence /quiesceCommonPool5、awaitJoin /helpComplete /externalHelpComplete6、hasQueuedSubmissions /getQueuedSubmissionCount /getQueuedTaskC...

2020-05-11 20:12:58 1329

原创 Java8 ForkJoinPool(二) 源码解析

目录 1、定义2、构造方法3、invoke /execute /submit / invokeAll4、externalPush /tryExternalUnpush5、lockRunState /unlockRunState 本篇博客重点讲解ForkJoinPool的定义及其提交任务到线程池的实现。1、定义 ForkJoinPool的类继承关系如下: 该类包含的属性如下: //最高的16位表示获取线程数,第二个...

2020-05-11 20:08:11 1026

原创 Java8 ForkJoinPool(一) 源码解析

目录一、ForkJoinWorkerThread1、定义2、run /getPoolIndex二、InnocuousForkJoinWorkerThread三、ForkJoinWorkerThreadFactory四、WorkQueue1、定义2、push /pop /poll /pollAt /peek /tryUnpush3、runTask4...

2020-04-28 18:46:50 2572 2

原创 Java8 RecursiveAction / RecursiveTask / CountedCompleter 源码解析

目录一、RecursiveAction1、普通的递归实现2、非递归实现二、RecursiveTask三、CountedCompleter1、定义2、BulkTask3、ForEachMappingTask4、ReduceEntriesTask5、SearchEntriesTask6、complete /tryComplete /helpComple...

2020-04-25 17:13:30 1275

原创 Java8 ScheduledThreadPoolExecutor 源码解析

目录一、ScheduledFutureTask1、定义2、compareTo /getDelay /isPeriodic3、run /cancel二、DelayedWorkQueue1、定义2、add /put /offer3、peek /poll /take4、remove /clear /drainTo5、iterator /...

2020-04-23 23:01:12 680

原创 Java8 ThreadPoolExecutor 源码解析

目录1、定义2、Worker3、构造方法4、addWorker5、execute6、CallerRunsPolicy /AbortPolicy /DiscardPolicy /DiscardOldestPolicy7、runWorker8、shutdown /shutdownNow /awaitTermination9、purge /remove...

2020-04-22 22:42:37 533

原创 Java8 AbstractExecutorService 和 FutureTask 源码解析

目录一、AbstractExecutorService1、定义2、submit3、invokeAll4、invokeAny二、FutureTask1、定义2、构造方法3、get4、run /runAndReset5、cancel三、ExecutorCompletionService1、定义2、submit3、take /pol...

2020-04-22 17:03:46 2102

原创 Java8 Phaser 源码解析

目录一、使用1、基本概念2、实现CountDownLatch的效果3、实现CyclicBarrier的效果4、灵活调整parties5、onAdvance6、父子Phaser二、源码解析1、定义2、构造方法3、register /bulkRegister4、arrive /arriveAndDeregister /arriveAndAwai...

2020-04-21 21:18:07 819

原创 Java8 Semaphore与Exchanger 源码解析

目录一、Semaphore1、使用2、定义3、acquire /acquireUninterruptibly /acquireUninterruptibly /tryAcquire4、release5、availablePermits /drainPermits /reducePermits二、Exchanger1、使用2、定义3、exchan...

2020-04-20 20:20:52 504

原创 Java8 CopyOnWriteArrayList与CopyOnWriteArraySet 源码解析

目录一、CopyOnWriteArraySet二、CopyOnWriteArrayList1、定义2、构造方法3、get /indexOf /lastIndexOf/ contains4、add / set /addIfAbsent5、addAll /addAllAbsent6、remove /removeAll /removeIf /re...

2020-04-19 17:07:18 531

原创 Java8 ConcurrentSkipListMap与ConcurrentSkipListSet (二) 源码解析

目录1、compute /merge2、higher /lower /ceiling / floor3、first/last4、pollFirstEntry /pollLastEntry5、keySet /descendingKeySet / Iter6、tailMap /headMap /subMap /SubMap 本篇博客继续上一...

2020-04-19 12:34:12 343

原创 Java8 ConcurrentSkipListMap与ConcurrentSkipListSet (一) 源码解析

目录一、ConcurrentSkipListSet二、ConcurrentSkipListMap1、定义2、Node /Index /HeadIndex3、SkipList 跳跃表4、构造方法5、put /putIfAbsent6、remove /replace /replaceAll /clear7、get /getOrDefault...

2020-04-18 21:12:51 1044 1

原创 Java8 ConcurrentHashMap(二) 源码解析

目录1、addCount2、tryPresize /helpTransfer3、transfer4、remove /replace/replaceAll /clear5、get /getOrDefault6、compute7、merge8、Traverser /keys /elements9、总结 本篇博客继续上一篇《Ja...

2020-04-17 17:20:18 341 1

原创 Java8 ConcurrentHashMap(一) 源码解析

目录1、定义2、Node /CounterCell /ForwardingNode /ReservationNode3、TreeNode4、TreeBin5、构造方法6、put /putIfAbsent /putAll7、treeifyBin /untreeify ConcurrentHashMap表示一个线程安全的,基于分段锁实...

2020-04-16 21:44:06 462

原创 Java8 ConcurrentLinkedDeque 源码解析

目录1、定义3、add /offer /addAll4、peek /poll /remove5、unlinkFirst /unlinkLast6、unlink7、iterator /descendingIterator ConcurrentLinkedDeque表示一个无固定容量的,线程安全的,基于CAS而非ReentrantLock互斥锁实现...

2020-04-15 17:43:48 462

原创 Java8 LinkedBlockingDeque 源码解析

目录1、定义2、构造方法3、add /offer /put4、poll /take /peek5、remove / clear /drainTo6、push /pop7、iterator / descendingIterator LinkedBlockingDeque表示一个可选固定容量的,线程安全的、基于链表和ReentrantLock...

2020-04-14 12:00:05 412

原创 Java8 ConcurrentLinkedQueue和LinkedTransferQueue 源码解析

目录一、ConcurrentLinkedQueue1、定义2、构造方法3、add / offer /addAll4、peek /poll /remove5、iterator /Itr二、LinkedTransferQueue1、定义2、add /offer / put3、take /poll /peek4、remove / drai...

2020-04-13 21:45:50 644

原创 Java8 PriorityBlockingQueue和SynchronousQueue 源码解析

PriorityBlockingQueue表示一个支持自动扩容的,线程安全的优先级队列,队列底层实现跟PriorityQueue是一致的,都是基于二叉堆。一、PriorityBlockingQueue1、定义 PriorityBlockingQueue的类继承关系如下:跟ArrayBlockingQueue实现的接口是一致的,相关方法的描述可以参考《Java...

2020-04-12 22:12:47 366

原创 Java8 LinkedBlockingQueue和DelayQueue 源码解析

目录一、LinkedBlockingQueue1、定义2、构造方法3、put /offer4、peek /poll /take5、remove /clear /drainTo6、iterator /Itr7、跟ArrayBlockingQueue的实现差异总结二、DelayQueue1、定义2、使用3、add / offe...

2020-04-09 16:57:00 634

原创 Java8 ArrayBlockingQueue 源码解析

目录1、定义2、构造方法3、add / offer /put4、poll /take /peek5、remove /clear /drainTo6、iterator /Itr /Itrs7、doSomeSweeping /register8、queueIsEmpty /elementDequeued /takeIndexWrappe...

2020-04-08 16:12:12 623

原创 Java8 atomic包 源码解析

目录一、AtomicLong二、AtomicLongArray三、AtomicLongFieldUpdater四、LongAdder1、使用2、定义3、add4、sum /reset /sumThenReset五、LongAccumulator六、AtomicMarkableReference 和 AtomicStampedReference ...

2020-04-07 17:50:51 584

原创 Java8 StampedLock(二) 源码解析

目录一、WriteLockView1、lock /lockInterruptibly2、tryLock3、unlock4、unlockWrite /tryUnlockWrite二、ReadLockView1、lock /lockInterruptibly2、tryLock3、unlock4、unlockRead /tryUnlockRead...

2020-04-06 18:13:38 384

原创 Java8 StampedLock(一) 源码解析

目录一、定义二、使用1、读写锁2、锁重入3、非公平锁4、乐观读锁5、锁转换StampedLock是Java8引入的,对ReentrantReadWriteLock的一个改良和扩展,其底层实现不再基于AbstractQueuedSynchronizer了,本篇博客就来详细探讨该类的定义和使用。一、定义 StampedLock没有直接实现ReadWri...

2020-04-06 17:13:33 1944 1

原创 Java8 ReentrantReadWriteLock 源码解析

目录一、定义二、使用三、WriteLock1、lock/lockInterruptibly2、tryLock3、unlock四、ReadLock1、lock2、lockInterruptibly3、tryLock4、unlock五、NonfairSync /FairSyncReentrantReadWriteLock是一个可重入...

2020-04-04 21:52:02 503

原创 Java8 ConditionObject 源码解析

目录1、定义 2、使用3、await /awaitUninterruptibly4、await / awaitNanos /awaitUntil5、signal /signalAll6、其他方法实现总结 上一篇《Java8 ReentrantLock 源码解析》中主要讲解了lock和unlock相关方法的实现,本篇讲解Reentra...

2020-04-04 14:36:10 927 3

原创 Java8 ReentrantLock 源码解析

目录一、AbstractQueuedSynchronizer1、定义2、Unsafe objectFieldOffset和staticFieldOffset3、Node二、ReentrantLock1、acquireQueued2、lock3、lockInterruptibly4、tryLock5、unlock6、其他方法实现总结 R...

2020-04-03 21:40:59 822

原创 Java8 CountDownLatch与CyclicBarrier 源码解析

目录一、CountDownLatch1、使用2、实现3、使用synchronized改造二、CyclicBarrier1、使用2、定义3、实现4、使用synchronized改造 CountDownLatch表示一个计数器,子线程执行完毕会调用countDown方法将计数减1,主线程调用await,一直等待直到计数变成0或者等待超时了,用于主...

2020-04-01 20:46:43 406

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除