Forrest Hu's Blogs
技术、架构与生活随笔 · 共 449 篇文章
-
以新的角度看数据结构
前言 前言 队列 合并请求的一种实现 轮询的一种实现 图 碎碎念 设计数据结构的过程是一种“映射” 为什么查询和排序是数据结构的基本操作 查询的不同意涵 多重查询 数据...
-
并发控制相关的硬件与内核支持
简介 硬件对并发控制的支持 原子操作 内存屏障 操作系统对并发控制的支持 自旋锁 互斥锁 信号量 linux 线程 分布式锁 一个博客系列的整理 其它多核的并行处理...
-
systemd 简介
前言Linux系统的初始化过程,笼统的讲:POST加电自检–>BIOS(Boot Sequence)–>加载对应引导上的MBR(bootloader)–>主引导设置加载其BootLoader–>Kernel初始化。Kernel初始化后,就是启动ini...
-
quartz 源码分析
简介 从使用开始讲起 简单使用 与spring整合 源码分析 分布式定时(未完成)从使用开始讲起简单使用如何使用分为两个部分:quartz独立使用,和Spring结合使用。之所以分开,是因为spring的存在,虽然增加了易用性,...
-
基于docker搭建测试环境(二)
(已过时)前文基于docker搭建测试环境展示了docker ci环境的搭建过程,本文将进一步丰富细节,主要讲述“将web项目编译,创建镜像以及将镜像部署到某个主机上,创建容器并运行”的脚本实现。流程脚本语言的选择 linux shell,操作swarm和registry...
-
spring aop 实现原理简述
简介 编程思想 or 编程模型 使用 实现 源码分析 何时将 Pointcut替换为代理类 创建代理对象 拦截链的执行 其它《spring源码深度解析》:我们知道,使用面向对象编程有一些弊端,当需要为多个不具有继承...
-
自己动手写spring(八) 支持AOP
前言本文在前文的基础上提供对AOP的支持。如果将Aop理解为一种类的横向分解技术,那么其实在AOP之前,有很多AOP-like的实现,比如j2ee的过滤器链。当然,这些都是静态的,java动态代理技术提供了一个更加优雅的实现。因为大部分代码都是相通的,所以本文只以前置增强为...
-
自己动手写spring(七) 类结构设计调整
前言前文的类设计比较简单粗暴,只为实现功能,本文对类设计做一些调整,避免一个类出现过多的代码。分解BeanFactory目前,BeanFactory主要有以下成员public Class BeanFactory{ private Beans beans; // ...
-
分析log日志
前言分析log日志,对一个服务器端开发工程师的重要性就不细谈了。列出当前目录下最大的10个文件du -hsx * | sort -rh | head -10分析web服务的日志 查看特定区域的日志 程序运行了一阵,莫名其妙停了。 cat test....
-
自己动手写spring(六) 支持FactoryBean
前言为什么需要工厂bean?回答这个问题,首先要回答下为什么需要工厂模式?简单说,就是不用new xxx()了。用new xxx()有什么不好呢?简单说就是:不能适应变化。对于传统的new xxx(),假设这个代码有10个地方使用,那么当xxx()改变时,你便要更改10个地...