多线程:ThreadLocal原理解析

简介 当访问共享数据可变数据时,通常需要进行加锁同步,同步是需要消耗性能的。 一种避免使用同步的方式就是不共享数据:如果数据在每个线程中都拥有一个副本,那就不需要同步了,这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。 线程封闭的实现方式由很多种,比如栈封闭(其实就是使用局部变量,只是...

2019-04-29 10:37:12

阅读数 12

评论数 0

Netty4.x源码分析:Netty常见组件(Channe、Unsafe、Pipeline)

当我们看Netty源码分析的时候,经常会看到几个常见组件比如Channel、Pipeline、Unsafe、EventLoopGroup、EventLoop。每个组件都是必不可少,而且这种设计对网络通信和逻辑处理的解耦起到非常重要的作用,比如我们在应用层不用关系底层网络通信的实现逻辑,只需编写Ch...

2019-03-29 17:01:30

阅读数 27

评论数 0

Tomcat源码解析:6、Digester XML原理解析

概要 在Tomcat中使用了大量的xml文件去配置一些重要的信息,以达到程序与配置的解耦,比如server.xml、web.xml。解析XML文件的技术,Tomcat使用了Digester框架去解析xml。我们可能对Digester比较陌生,比较常用的解析xml的技术有JDK自带的SAX、还有比较...

2019-01-03 17:24:15

阅读数 54

评论数 0

Tomcat源码解析:5、Tomcat启动

Bootstrap org.apache.catalina.startup.Bootstrap类是Tomcat的入口,当我们想在IDE中运行Tomcat进行调试,可以找到这个类直接运行main方法。 我们看下Bootstrap的main方法 public static void ma...

2019-01-02 19:47:15

阅读数 40

评论数 0

Tomcat源码解析:4、Tomcat初始化

Bootstrap org.apache.catalina.startup.Bootstrap类是Tomcat的入口,当我们想在IDE中运行Tomcat进行调试,可以找到这个类直接运行main。 我们看下Bootstrap的main方法 public static void main(St...

2019-01-01 11:42:26

阅读数 132

评论数 0

Tomcat源码解析:3、Tomcat生命周期Lifecycle

Lifecycle Lifecycle接口它是一个公用的接口,在Tomcat的组件中都直接或者间接的实现该类或者它的子类。所以它是一个非常重要的接口,定义了组件生命周期的一些方法,包括:init、start、stop、destroy,还有操作LifecycleListener的API,典型的观察者...

2018-12-27 16:14:21

阅读数 71

评论数 0

Tomcat源码解析:2、Tomcat结构组成

在看源码之前,我们首先得了解Tomcat的结构组成,并且了解它每个组件的作用,这样我们看才不会一脸懵逼。 总体结构 tomcat的总体架构如下图所示(摘自https://blog.csdn.net/Dwade_mia/article/details/79051404) 如上图所示:Tomcat由...

2018-12-23 13:13:07

阅读数 40

评论数 0

Tomcat源码解析:1、环境搭建(Eclipse为例)

源码分析第一步,当然是把源码导入自己的IDE,本文以Tomcat8.5.29为例,使用Ant工具进行代码编译,按照下面的步骤来就可以了 下载Ant 这里使用的是Ant1.10.5,下载地址:http://mirrors.shu.edu.cn/apache//ant/binaries/apache-...

2018-12-23 10:34:39

阅读数 19

评论数 0

JavaConcurrent包源码解析:AbstractQueuedSynchronizer

转载一篇AbstractQueuedSynchronizer的源码解析文章感觉写的还不错,后期自己在补上

2018-12-20 15:37:36

阅读数 18

评论数 0

JavaConcurrent包源码解析:ThreadPoolExecutor线程池

本文概要

2018-12-11 17:35:11

阅读数 16

评论数 0

Spring4.x源码分析:@Transactional注解事务

本文概要 1、@Transactional注解简单使用 2、Spring事务传播行为 3、TxNameSpaceHandler作用 4、TransactionInterceptor源码分析 Spring事务传播行为 @Transactional注解简单使用 TxNameSpaceHa...

2018-11-30 17:23:07

阅读数 113

评论数 0

JavaConcurrent包源码解析:ConcurrentHashMap

本文概要 ConcurrentHashMap概述 ConcurrentHashMap数据结构 ConcurrentHashMap源码解析 ConcurrentHashMap概述 ConcurrentHashMap跟HashMap非常相似,比如数据结构,还有实现思路上都非常相似。但...

2018-11-15 14:29:11

阅读数 53

评论数 0

Java集合源码解析:HashMap

本文概要 HashMap概述 HashMap数据结构 HashMap的源码解析 HashMap概述 在官方文档中是这样描述的: Hash table based implementation of the Map interface. This implementation p...

2018-11-08 19:50:42

阅读数 43

评论数 0

Java集合源码解析:TreeMap

本文概要 二叉查找树的用处 二叉查找树,以及二叉树带来的问题 平衡二叉树的好处 红黑树的定义以及构造 红黑树在TreeMap的运用 二叉树的好处 可能许多人会有疑问,为什么要使用二叉树,有那么多的数据结构,比如数组、链表等 简单看下数组和链表的优缺点 数组 优势:查找快,通过索引直接定位数据...

2018-11-07 15:25:15

阅读数 41

评论数 0

Spring4.x源码解析:AOP切面底层原理解析

简介 在我们日常编程中,常常会遇到一些日志、权限验证等功能,在不使用AOP的情况下,解决办法:在我们每个类需要记录日志的方法的方法体内加入记录日志的语句,这种解决方法不仅繁琐而且会导致代码大量冗余。 就有人想到了把公共的代码抽出去,需要使用这些公共功能的类,使用代理模式去代理这个对象,然后使其...

2018-10-25 15:33:12

阅读数 107

评论数 0

Spring4.x源码解析:JDK动态代理成生成代理对象源码

@Component("aopTestBean") class AopTestBean implements AopTestBeanInterface{ public void aop1(){ System.out.println(&am...

2018-10-25 13:59:32

阅读数 156

评论数 0

Spring4.x源码解析:Cglib生成代理对象的源码

源代码: @Component("aopTestBean") class AopTestBean implements AopTestBeanInterface{ public void aop1(){ System.out.printl...

2018-10-25 13:56:51

阅读数 424

评论数 1

Spring4.x源码解析:IOC容器底层原理解析

引包 <dependency> <groupId>org.springframework&amp...

2018-10-23 12:18:23

阅读数 384

评论数 0

Netty4.x源码分析:服务端接受客户端Channel连接

引包 <dependency> <groupId>io.netty</groupId> ...

2018-10-18 13:56:41

阅读数 230

评论数 0

Netty4.x源码分析:服务端绑定端口

本文会详细解析Netty绑定端口的每一个流程,不过整个过程涉及到许多的异步调用,整个逻辑过程有点绕,非战斗人员谨慎阅读。。 绑定端口模板代码 ServerBootstrap serverBootstrap = new ServerBootstrap(); ser...

2018-10-16 16:44:02

阅读数 199

评论数 0

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