前言 Apache RocketMQ 作为广为人知的开源消息中间件,诞生于阿里巴巴,于 2016 年捐赠给了 Apache.从 RocketMQ 4.0 到如今最新的 v4.7.1,不论是在阿里巴巴内部还是外部社区,都赢得了广泛的关注和好评. 本文将站在发送方视角,通过阅读 RocketMQ Producer 源码,来分析在事务消息发送中 RocketMQ 是如何工作的. 需要说明的是,本文所贴代码,均来自 4.7.1 版本的 RocketMQ 源码.本文中所讨论的发送,仅指从 Producer…
[源码解析] PyTorch 分布式(14) --使用 Distributed Autograd 和 Distributed Optimizer 目录 [源码解析] PyTorch 分布式(14) --使用 Distributed Autograd 和 Distributed Optimizer 0x00 摘要 0x01 说明 0x02 启动 0x03 Trainer 0x04 模型 4.1 组件 4.1.1 参考代码 4.1.2 分布式修改 4.2 RNN 模型 4.3 分布式优化器 4.4…
一.概要 大家应该都清楚,大家上线app,需要上线各种平台,比如:小米,华为,百度等等等等,我们多数称之为渠道,如果发的渠道多,可能有上百个渠道. 针对每个渠道,我们希望可以获取各个渠道的一些独立的统计信息,比如:下载量等. 那么,如何区分各个渠道呢? 我们需要一个特性的标识符与该渠道对应,这个标识符肯定是要包含在apk中的.那么,我们就要针对每个渠道包去设置一个特定的标识符,然后打一个特定的apk. 这个过程可以手动去完成,每次修改一个字符串,然后手动打包.大家都清楚打包是一个相当耗时的过程,…
简介Retrofit是Square公司开发的一款针对Android网络请求的框架,官网地址http://square.github.io/retrofit/ ,在官网上有这样的一句话介绍retrofit,A type-safe HTTP client for Android and Java.我们知道Retrofit底层是基于OKHttp实现的.对okhttp不了解的同学可以看看这一篇文章.okhttp源码解析https://www.cnblogs.com/huangjialin/p/94693…
我们这次来叭叭一下Spring的源码,这次博客主要来说说Spring源码,先粗略的撸一遍,下篇博客选几个重点去说,由于过于复杂,我也是看了一点点,我们先来过一遍源码,然后上流程图,最后我们再回头总结一下,我们来循序渐进的叭叭一下. 我们来回顾一下上次Spring博客的内容,每次都有用到AnnotationConfigApplicationContext来加载我们的配置类,我们就从这里开始. /** * Create a new AnnotationConfigApplicationContext…
或许对于许多Android开发者来说,所谓的Android工程师的工作"不过就是用XML实现设计师的美术图,用JSON解析服务器的数据,再把数据显示到界面上"就好了,源码什么的,看也好不看也罢,反正应用层的开发用不上,再加上现在优秀的轮子越来越多,拿来主义泛滥,能用就是,反正老板也不关心是不是你自己写的,用我现在老大的话来说,阅读源码似乎只是一种"锦上添花"的事,有自然好,没有也罢. 说了这么多,到底有没有必要阅读源码?有必要,而且非常有必要!原因有三. 其一,了解…
注意,看完这篇文章需要很长很长很长时间... 准备工作 本文会分析Spring的IOC模块的整体流程,分析过程需要使用一个简单的demo工程来启动Spring,demo工程我以备好,需要的童鞋自行在下方链接下载: 1 https://github.com/shiyujun/spring-framework Demo工程示例代码 本文源码分析基于Spring5.0.0,所以pom文件中引入5.0的依赖 1234567 <dependencies> <dependency> <g…
接上回,我们讲到了refresh()方法中的invokeBeanFactoryPostProcessors(beanFactory)方法主要在执行BeanFactoryPostProcessor和其子接口BeanDefinitionRegistryPostProcessor的方法. 在创建AnnotationConfigApplicationContext对象时Spring就添加了一个非常重要的BeanFactoryPostProcessor接口实现类:ConfigurationClassPos…
jdk版本:1.8 数据结构: HashMap的底层主要基于数组+链表/红黑树实现,数组优点就是查询块,HashMap通过计算hash码获取到数组的下标来查询数据.同样也可以通过hash码得到数组下标,存放数据. 哈希表为了解决冲突,HashMap采用了链表法,添加的数据存放在链表中,如果发送冲突,将数据放入链表尾部. 上图左侧部分是一个哈希表,也称为哈希数组(hash table): // table数组 transient Node<K,V>[] table; table数组的引用类型是N…
一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~ 首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志~ MyButton package com.example.zhy_event03; import android.content.Context; import android.util.AttributeSet;…