写在前面 前面两篇文章透过源码角度,理解了HttpClientFactory的内部实现,当我们在项目中使用时,总会涉及以下几个问题: HttpClient超时处理以及重试机制 HttpClient熔断器模式的实现 HttpClient日志记录与追踪链 接下来我们将从使用角度对上述问题作出说明. 详细介绍 以下代码参考了MSDN,因为代码里展示的GitHub接口确实可以调通,省的我再写一个接口出来测试了. HttpClient超时处理和重试机制 在此之前,我们需要了解一下Polly这个库,Po…
  写在前面 上一篇文章讨论了通过在ConfigureServices中调用services.AddHttpClient()方法,并基于此进一步探讨了DefaultHttpClientFactory是如何创建HttpClient实例和HttpMessageHandler实例的,并了解了DefaultHttpClientFactory内部维护者一个定时器和两个HttpMessageHandler对象集合,以定期清理无效的 HttpMessageHandler对象,详细的内容可以点击链接跳转,接下来…
写在前面 创建HttpClient实例的时候,在内部会创建HttpMessageHandler链,我们知道HttpMessageHandler是负责建立连接的抽象处理程序,所以HttpClient的维护实际上就是维护HttpMessageHandler的使用,释放HttpClient并不会及时释放连接,而通常情况下一般是创建全局使用的HttpClient实例,以减少重复连接的次数.当然这种方式所带来的的弊端也是显而易见的,因为当前的HttpClient实例所指向的服务器发生问题或者DNS发生变更…
原文:.NET Core 3.0之深入源码理解Startup的注册及运行   写在前面 开发.NET Core应用,直接映入眼帘的就是Startup类和Program类,它们是.NET Core应用程序的起点.通过使用Startup,可以配置化处理所有向应用程序所做的请求的管道,同时也可以减少.NET应用程序对单一服务器的依赖性,使我们在更大程度上专注于面向多服务器为中心的开发模式. 目录: Startup讨论 Starup所承担的角色 Startup编写规范 ConfigureServices…
VUEJS2.0源码理解 http://jiongks.name/blog/vue-code-review/#pingback-112428…
  react-router等前端路由的原理大致相同,可以实现无刷新的条件下切换显示不同的页面.路由的本质就是页面的URL发生改变时,页面的显示结果可以根据URL的变化而变化,但是页面不会刷新.通过前端路由可以实现单页(SPA)应用,本文首先从前端路由的原理出发,详细介绍了前端路由原理的变迁.接着从react-router4.0的源码出发,深入理解react-router4.0是如何实现前端路由的. 通过Hash实现前端路由 通过H5的history实现前端路由 React-router4.0的…
前提 org.springframework.core.env.Environment是当前应用运行环境的公开接口,主要包括应用程序运行环境的两个关键方面:配置文件(profiles)和属性.Environment继承自接口PropertyResolver,而PropertyResolver提供了属性访问的相关方法.这篇文章从源码的角度分析Environment的存储容器和加载流程,然后基于源码的理解给出一个生产级别的扩展. 本文较长,请用一个舒服的姿势阅读. 本文已经转移到个人博客中维护,因为…
jQuery 2.0.3 源码分析Sizzle引擎 - 解析原理 声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 先来回答博友的提问: 如何解析 div > p + div.aaron input[type="checkbox"] 顺便在深入理解下解析的原理: HTML结构 <div id="text"> <p> <input type="text" /> </p>…
目录 写在前面 成员变量的含义及作用 构造与析构 内存同步管理 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 在Caffe源码理解1中介绍了Blob类,其中的数据成员有 shared_ptr<SyncedMemory> data_; shared_ptr<SyncedMemory> diff_; std::shared_ptr 是共享对象所有权的智能指针,当最后一个占有对象的shared_ptr被销毁或再赋值时,对象会被自动销毁并释放内存,见cp…
前言 开心一刻 女儿: “妈妈,你这么漂亮,当年怎么嫁给了爸爸呢?” 妈妈: “当年你爸不是穷嘛!‘ 女儿: “穷你还嫁给他!” 妈妈: “那时候刚刚毕业参加工作,领导对我说,他是我的扶贫对象,我年轻理解错了,就嫁给他了!” 女儿...... @Import注解应用 应用开发中,当我们的功能模块比较多时,往往会按模块或类别对Spring的bean配置文件进行管理,使配置文件模块化,更容易维护:spring3.0之前,对Spring XML bean文件进行拆分, 例如 <beans xmlns=…
http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android模拟器: 由于我是在Win8中安装虚拟机VMware,然后在虚拟机中安装Ubuntu进行编译,所以遇到诸多麻烦.如果直接在Linux中编译,可能会更顺利. ------------------------------------------------------------------------…
目录 文章思路 源码理解 一. 标签点形式 按顺序排列四个点,逆时针旋转,且第一个点为左上角点(刚开始选择最左边的点, 二. 标签切边 三. loss计算 四. NMS 最后说明 文章思路 大神的github和个人网站已经对此进行了说明,这里不再赘述... 源码理解 一. 标签点形式 给四个点排列顺序制定规则 ''' 按顺序排列四个点,逆时针旋转,且第一个点为左上角点(刚开始选择最左边的点, ​ 如果最后计算的第二个点的Y比第一个点大,那就让最后一个点做为第一个点,其他点依次右移) 1.以最小的…
Pytorch学习之源码理解:pytorch/examples/mnists from __future__ import print_function import argparse import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets, transforms from torch.optim.…
写在前面 聊一聊MyBatis的核心概念.Spring相关的核心内容,主要结合源码理解Spring是如何整合MyBatis的.(结合右侧目录了解吧) MyBatis相关核心概念粗略回顾 SqlSessionFactory 创建SqlSession的工厂 SqlSession sql请求的会话,通过SqlSessionFactory获取. String resource = "mybatis-config.xml"; InputStream resourceAsStream = Reso…
Linux 0.11源码阅读笔记-总览 阅读源码的目的 加深对Linux操作系统的了解,了解Linux操作系统基本架构,熟悉进程管理.内存管理等主要模块知识. 通过阅读教复杂的代码,锻炼自己复杂项目代码的阅读能力.对于一般简短的程序,可以从main函数逐行阅读理解:对于复杂的项目,只能在了解源码主要结构的情况下,抓住某个具体的功能进行阅读. 选择较早版本的理由 Linux较新版本代码在百万行以上,而0.11版本内核不超过2万行代码.比较新版本的Linux内核源码太多且内容庞杂,自身能力不足,没有…
HashMap 是一个散列桶(本质是数组+链表),散列桶就是数据结构里面的散列表,每个数组元素是一个Node节点,该节点又链接着多个节点形成一个链表,故一个数组元素 = 一个链表,利用了数组线性查找和链表修改的便利性(横向=Node数组,横向只存放每个链表第一个节点,通过数组下标维持每个Node链表第一个节点的关系:纵向=Node链表,纵向是通过链表中的next维持一个Node链表所有节点的关系) HashMap 可以接受 null 键和null值,而 Hashtable 则不能 每个Node节…
write less,do more jQuery告诉我们:牛逼的代码不仅精简而且高效! 2006年1月由美国人John Resig在纽约的barcamp发布了jQuery,吸引了来自世界各地众多JavaScript高手加入,由Dave Methvin率领团队进行开发.如今,jQuery已经成为最流行的JavaScript框架,在世界前10000个访问最多的网站中,有超过55%在使用jQuery. jQuery 版本:截止2013年6月的版本是2.0.3和1.10.2.其中,jQuery1.10…
英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virtual box 4.2.16 2. 虚拟机装操作系统 ubuntu10.04 32bit版 3. 虚拟机内存1.792GB, 硬盘500GB(未必用上这么多,使用动态模式) 4. JDK 这个稍麻烦点,针对android4.0.3,一定要安装jdk.6.0_31.因为官方ubuntu已经没有合适的源…
昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x40362d33, pid=12195, tid=2835454784 # # JRE version: 6.0_45-b06 # Java VM: Java HotSpot(TM) Server VM (20.45-b01 mixed mode linux-x86…
onTouchEvent同样也是在view中定义的一个方法.处理传递到view 的手势事件.通过MotionEvent的getAction()方法来获取Touch事件的类型,类型包括ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL等事件.其中ACTION_DOWN是指按下触摸屏,ACTION_MOVE是指按下触摸屏后移动受力点,ACTION_UP则是指松 开触摸屏,ACTION_CANCEL不会由用户直接触发. 贴上View.onTouchEvent…
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-project 核心代码,代码量很多(197508 行) Spring-boot-samples 一些样例 demo,代码量不多(9685 行),蛮有用的 Spring-boot-samples-invoker 里面无代码 Spring-boot-tests 测试代码(1640 行) spring-bo…
[jedis的源码理解-基础篇][http://my.oschina.net/u/944165/blog/127998] (关注实现关键功能的类)   基于jedis 2.2.0-SNAPSHOT         首先是对输入输出Stream进行了包装生成出两个类redis.clients.util.RedisOutputStream 和 redis.clients.util.RedisInputStream.这两个类极大的简化了IO操作的操作.      redis.clients.util.…
阅读提示:阅读本文前,最好先阅读<Spark2.1.0之源码分析——事件总线>.<Spark2.1.0事件总线分析——ListenerBus的继承体系>及<Spark2.1.0事件总线分析——SparkListenerBus详解>几篇文章的内容. LiveListenerBus继承了SparkListenerBus,并实现了将事件异步投递给监听器,达到实时刷新UI界面数据的效果.LiveListenerBus主要由以下部分组成: eventQueue:是SparkLis…
https://zhuanlan.zhihu.com/p/25074960 https://zhuanlan.zhihu.com/p/25095222 总体上是参考这两个链接,感谢大神的分享,但是中间遇到很多问题,也学到很多,现总结如下: 以下是基于win10 64 位& Visual Studio 2008平台(不是标配,我电脑就是win10,vs2008也是之前项目用到装的) 一.源码 这里用的是bitcoin-0.1.0版本 二.配置依赖库 a)         wxWidgets (3.…
一:前提 已经正常安装了SDN环境(mininet和openswitch2.11.0和Ryu) 使用前面教程安装环境SDN实验---使用git安装Mininet (一)测试ovs是否正常使用 1.ryu启动 2.mn启动测试 二:原始信息 三:修改程序 (一)修改源码:在vport.c和.h中添加代码---文件写入信息<慎用>(未修改调试,出现问题) 1.vport.h文件 //custom function to log info void send_msg(const char* file…
本文介绍spark2.1.0的源码编译 1.编译环境: Jdk1.8或以上 Hadoop2.7.3 Scala2.10.4 必要条件: Maven 3.3.9或以上(重要) 点这里下载 http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz 修改/conf/setting.xml <mirror> <id>alimaven</id> <na…
1.网站地址:http://www.freeboygirl.com2.网站Asp .Net Core 资料http://www.freeboygirl.com/blog/tag/asp%20net%20core3.各类最新Asp .Net Core 项目和示例源码​ github.com/freeboygirl 4.微信公众号:AspNetCore 5.直接在微信公众号发消息即可.…
Linux 0.11源码阅读笔记-文件管理 文件系统 生磁盘 未安装文件系统的磁盘称之为生磁盘,生磁盘也可以作为文件读写,linux中一切皆文件. 磁盘分区 生磁盘可以被分区,分区中可以安装文件系统,常见的文件系统有fat32.ext2.ext4等.分区后的磁盘结构布局如下图,其中主引导扇区记录了分区信息,并且包含引导代码可用于引导操作系统. 文件系统 分区内可以安装指定文件系统,同一磁盘多个分区文件系统不要求相同.MINIX文件系统布局如下: 引导块:若作为引导分区,将存放操作系统的引导程序代…
Linux 0.11源码阅读笔记-中断过程 是什么中断 中断发生时,计算机会停止当前运行的程序,转而执行中断处理程序,然后再返回原被中断的程序继续运行.中断包括硬件中断和软件中断,硬中断是由外设自动产生的,软中断是程序通过int指令主动调用.中断产生时,会有一个中断号,根据中断号可在中断向量表中选择对应的中断处理程序执行. 中断在linux当中非常重要,是用户态代码与和心态代码相互切换运行的桥梁.进程调度依赖于时钟中断进入内核,系统调用也是依赖int 80软中断进入内核执行. 中断处理过程 以i…
jQuery源码:从原理到实战 jQuery选择器对象 $(".my-class"); document.querySelectorAll*".my-class") document.querySelector(".my-class") 原生JS的jQuery选择器实现方法querySelector jQuery的查找和链式写法实现原理 从DOM库到jQuery的DOM方法 从tween算法到jQuery动画 从设计模式到jQuery的事件模型…