看看Curator框架 为实现对 连接状态ConnectionState的监听,都是怎么构造框架的.后面我们也可以应用到业务的各种监听中. Curator2.13实现 接口 Listener Listener接口,给用户实现stateChange()传入新的状态,用户实现对这新的状态要做什么逻辑处理. public interface ConnectionStateListener { /** * Called when there is a state change in the connec…
tomcat 作为知名的web容器,很棒! 本文简单了从其应用命令开始拆解,让我们对他有清晰的了解,揭开神秘的面纱!(冗长的代码流水线,给你一目了然) 话分两头: 1. tomcat是如何启动的? 2. tomcat是如何接收请求的? x. 应用程序是怎样接入tomcat的? 从何处开始? /etc/init.d/.0_101/bin/java org.apache.catalina.startup.Bootstrap "$@" start # 参考eval命令 eval "…
内存管理 Linux内核使用段页式内存管理方式. 内存池 物理页:物理空闲内存被划分为固定大小(4k)的页 内存池:所有空闲物理页组成内存池,以页为单位进行分配回收.并通过位图记录了每个物理页是否空闲,位图下标对应物理页号. 分页内存管理 虚拟页:进程虚地址空间被划分为固定大小(4k)的页 分页内存管理:通过页目录和页表维护进程虚拟页号到物理页号的映射.设置好页目录.页表之后,虚拟地址到物理地址之间的转换通过内存管理单元(MMU)自动完成转换.若访问的虚拟页没有实际分配物理页,则放生缺页中断,内…
一.UML图分析: (一) Session: Session保存了一个客户端访问服务器时,服务器专门为这个客户端建立一个session用来保存相关的会话信息,session有一个有效时间,这个时间默认是60秒,如果超过60秒该客户端没有再发送请求信息过来,则服务器会删除该session: 1.每个session有一个唯一的id用来区分不同的session: 2.从session的构造函数可以看出session必须关联一个manager对象,manager是session管理器: 3.MaxIna…
Linux 源码阅读 进程管理 版本:2.6.24 1.准备知识 1.1 Linux系统中,进程是最小的调度单位: 1.2 PCB数据结构:task_struct (Location:linux-2.6.24\include\linux\sched.h)(任务可以和进程混用) task_struct结构体 2.设计思路图 3.数据结构 4.主要函数 4.1创建进程 long do_fork(unsigned long clone_flags, unsigned long stack_start,…
PS:文章内容涉及源码,请耐心阅读. 理论实践,相辅相成 伟大领袖毛主席告诉我们实践出真知.这是无比正确的.但是也会很辛苦. 就像淘金一样,从大量沙子中淘出金子一定是一个无比艰辛的过程.但如果真能淘出来,也一定是像金子一样宝贵的东西. 他老人家还说过,当真知上升为理论的时候,就可以反过来指导实践了. 在当下这个时代,前辈们已经发现和整理了很多理论,我们直接拿来使用就行了.“拿来主义”不全是不好的. 如果说阅读源码算一种实践的话,那我们拿什么“理论”来指导它呢? 兵马未动,粮草先行 答案自然是官方…
LevelDB(v1.3) 源码阅读系列使用 LevelDB v1.3 版本的代码,可以通过如下方式下载并切换到 v1.3 版本的代码: $ git clone https://github.com/google/leveldb.git $ cd leveldb $ git checkout -b v1.3 v1.3 本文涉及的代码文件为: util/arena.h util/arena.cc 一.简介 Arena 是一个简单的内存分配器.通过一个 Arena 对象,可以进行一些内存分配操作.A…
[原]AFNetworking源码阅读(四) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇还遗留了很多问题,包括AFURLSessionManagerTaskDelegate类所实现的NSURLSession相关的代理方法,甚至连dataTask.uploadTask.downloadTask这几个基本概念也没说.这一篇就是为了集中消灭这些遗留问题. 2. AFURLSessionManagerTaskDelegate的代理方法 此处实现的仍然是NSURLS…
[原]AFNetworking源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇的话,主要是讲了如何通过构建一个request来生成一个data task.但是对于NSURLSession部分却没有提及.主要是精力有限,准备在这一部分把NSURLSession的知识好好梳理一遍.一切先从上一篇中的addDelegateForDataTask:函数说起,然后再介绍AFURLSessionManagerTaskDelegate,最后结合AFURLSes…
[原]SDWebImage源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1.SDWebImageDownloader中的downloadImageWithURL 我们来到SDWebImageDownloader.m文件中,找到downloadImageWithURL函数.发现代码不是很长,那就一行行读.毕竟这个函数大概做什么我们是知道的.这个函数大概就是创建了一个SDWebImageSownloader的异步下载器,根据给定的URL下载image. 先映入眼帘的…