自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lz710117239的博客

java程序员的博客

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

原创 dubbo中的一致性hash(ConsistentHashLoadBalance)详解

注意:本文适用于了解dubbo以及一致性hash的读者众所周知,dubbo中有四种负载均衡策略:别的负载均衡策略就不细说了,再这里重点说一下dubo中的一致性hash负载均衡:ConsistentHashLoadBalance前面的流程不多说,我们直接进入ConsistentHashLoadBalance的doSelect()方法中: protected <T> Invoker&...

2018-02-27 17:21:09 1733

原创 dubbo源码之拦截调用

dubbo在生成调用者和被调用者的动态代理的时候会生成调用链,在拦截调用链走完后才会进入真正的方法调用,拦截调用分别在消费者端和调用者端都生成了调用链,代码如下:消费者端行成调用链: public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException { if (C...

2018-02-27 15:48:47 909

原创 dubbo源码之ExtensionLoader详解

在dubbo中,有一个核心的东西叫做ExtensionLoader,这个类负责选择用户指定的或者默认的LoadBalance,Cluster,Invoker,注册中心,编解码等,那么想知道dubbo怎么配置,以及默认都是使用的都是什么配置,就要理解清楚这个类。我们以负载均衡的选择为例:loadbalance = ExtensionLoader.getExtensionLoader(LoadBala...

2018-02-27 12:20:05 256

原创 SpringBoot源码解析(十六)事务的SpringAOP源码详解

SpringAOP是spring的动态代理模块。我们在spring的事务等多个方面都用到了springAOP方面的知识。我们就以事务的动态代理原理解析来分析下springAOP的源码。SpringAOP有几个核心概念: (1).切面Aspect: Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些切入点Pointcut 以及对切入点进行相应的操作的通知Advic...

2018-02-26 23:04:59 675

原创 LinkedBlockingQueue源码解析

LinkedBlockingQueue是无界队列,其内部是链表结构组成的节点,看下其基本结构: static class Node<E> { E item; /** * One of: * - the real successor Node * - this Node, meaning the...

2018-02-09 20:39:48 223

原创 带进度条的上传文件

使用百度的Web Uploader:http://fex.baidu.com/webuploader/getting-started.html

2018-02-09 15:37:16 301

转载 Gradle的安装

前言:  我不是一个勤奋好学的人,奔着新技术就跑去尝试学习。但是在工作或者学习的过程中,遇到了的技术,还是得一个坎一个坎的迈过去。把今天遇到的坎变成明天的垫脚石。  想学习一下 spring 的源码,然后 它是有 gradle 构建的。那一天,我尝试了一半之后,将源码用另外一种形式拿出来看了,就没有继续下去。  今天,看到了一个开源项目,很想拉下来研究下。然后,它也是 gradle 构建的。便只好...

2018-02-08 16:11:35 290 2

原创 sleep与wait是否会占用cpu资源

一直对sleep与wait除了使用方法上的却别外,还对它们是否会占用cpu时间产生了疑惑,故此做了个实验如下:上图中是什么代码都没有执行的时候的cpu利用率,下面我们执行这段代码: public static void main(String[] args) { for (int i = 0; i < 10000000; i++) { Syste...

2018-02-08 13:38:10 37861 16

原创 编译原理(十)Java运行系统

动态绑定规则当对象o的一个方法可能被自类重写时,如果编译器不能确定o的运行时类型,那么必须对该方法进行动态绑定将一个java语言的类翻译成c语言的程序段,主要的工作由如下几点(由继承引出的问题暂不考虑)将Java语言中一个类的所有非静态属性构成一个C语言的结构体类型,取类的名字作为结构体类型的名字类的静态属性是该类的所有对象所共有的,应当翻译成C中的全局变量,但是需要改一个名字。J

2018-02-02 22:07:37 228

原创 编译原理(九)C语言编译系统

C语言编译系统:两边扫描,有些跳转代码,要等翻译过后,才能知道具体位置,所以要进行第二遍编译:连接器目标模块或目标文件的形式可重定位的目标文件可执行的目标文件共享目标文件----一种特殊的可重定位目标文件----在装入程序或运行程序时,动态地装入到内存并连接(例如,当你引入了包含printf的头文件,当用到printf的时候,会将此文件装入内存,否则不装入,如此

2018-02-02 19:41:56 2069

原创 编译原理(八)独立于机器的代码优化

代码优化通过程序变换(局部变换和全局变换)来改进程序,称为优化基本块和流图对每个基本块从最后一个语句反向扫描到第一个语句,可以得到下次引用信息,这样就可以制造出引用链,从而通过是否后面还有引用做出相应的编译优化:数据流分析介绍:B1的入口,是开始都为0,出口生成d1,d2,d3,被注销的是d4,d5,d6,d7所以是111 0000对于B2来说,是生成d4,d5,注

2018-02-01 20:18:20 585

空空如也

空空如也

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

TA关注的人

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