【JDK】JDK源码分析-ReentrantLock

的 lock 操作为:先尝试以 CAS 方式修改 state 的值,若修改成功,则表示成功获取到锁,将 owner 设为当前线程;否则就执行 AQS 中的 acquire 方法,具体可参考前文「JDK源码分析-AbstractQueuedSynchronizer(2)」,这里不再赘述。 (2)公平锁 FairSync: static final class FairSync extends Sync { ...

【JDK】JDK源码分析-LinkedHashMap

概述 前文「JDK源码分析-HashMap(1)」分析了 HashMap 主要方法的实现原理(其他问题以后分析),本文分析下 LinkedHashMap。 先看一下 LinkedHashMap 的类继承结构图: 可以看到 LinkedHashMap 继承了 HashMap。 我们知道 HashMap 是无序的,即迭代器的顺序与插入顺序没什么关系。而 LinkedHashMap 在 HashMap 的基础上...

RocketMQ中Producer的启动源码分析

RocketMQ中通过DefaultMQProducer创建Producer DefaultMQProducer定义如下: 1 public class DefaultMQProducer extends ClientConfig implements MQProducer { 2 protected final transient DefaultMQProducerImpl defaultMQProdu...

spark的存储系统--BlockManager源码分析

spark的存储系统--BlockManager源码分析根据之前的一系列分析,我们对spark作业从创建到调度分发,到执行,最后结果回传driver的过程有了一个大概的了解。但是在分析源码的过程中也留下了大量的问题,最主要的就是涉及到的spark中重要的几个基础模块,我们对这些基础设施的内部细节并不是很了解,之前走读源码时基本只是大概了解每个模块的作用以及对外的主要接口,这些重要的模块包括BlockMa...

Android8.1 SystemUI源码分析之 Notification流程

迎留言讨论。 statusBar左边区域(notification_icon_area)看完了,接下来看下右边的系统图标区域(system_icon_area) Android8.1 SystemUI源码分析之 电池时钟刷新 从根源上屏蔽Notification frameworks/base/services/core/java/com/android/server/notification/Notif...

多线程十一之ConcurrentHashMap1.7源码分析

目录 简介 ConcurrentHashMap数据结构 源码解析 put(K key, V value) get(Object key) size() remove(Object key) isEmpty() 总结 简介  本文是基于JDK7分析ConcurrentHashMap的实现原理,这个版本ConcurrentHashMap的代码实现比较清晰,代码加注释总共也就1622行,适合用来分析学习。...

【Java】NIO中Channel的注册源码分析

Channel的注册是在SelectableChannel中定义的: 1 public abstract SelectionKey register(Selector sel, int ops, Object att) 2 throws ClosedChannelException; 3 4 public final SelectionKey register(Selector sel, int ops)...

【Java】NIO中Selector的创建源码分析

der 15 continue; 16 } 17 throw sce; 18 } 19 } 20 } 有关ServiceLoader的加载过程可以看我的上一篇博客【Java】ServiceLoader源码分析,在这里我就不累赘了。该方法调用ServiceLoader的load加载在"META-INF/services/"路径下指明的SelectorProvider.class的实现类(其实是懒加载,在迭代...

【Java】ServiceLoader源码分析

e, prev); 9 } 该方法与load方法不同在于loadInstalled使用的是扩展类加载器,而load使用的是传入进来的或者是线程的上下文类加载器,其他都一样。 ServiceLoader源码分析到此全部结束。 ...

Struts2 源码分析-----工作原理分析

spatcher 不会清理线程局部的 ActionContext。如果不存在 ActionContextCleanUp 过滤器,FilterDispatcher 会清除所有线程局部变量。 strut2源码分析 首先我们使用struts2框架都会在web.xml中注册和映射struts2,配置内容如下: <filter> <filter-name>struts2</filter-name> <filte...
关于我们 联系我们 友情链接 LMLPHP后院 
本站由 LMLPHP 强力驱动 ©2014-2019 LMLPHP 耗时0.066877(s)
2019-11-15 21:34:54 1573824894