libuv源码分析前言】的更多相关文章

Libevent,libev,libuv三者的区别所在? libevent提供了全套解决方案(事件库,非阻塞IO库,http库,DNS客户端),然而libevent使用全局变量,导致非线程安全.它的watcher结构也过大,把I/O.计时器.信号句柄整合在一起.而且(作者认为)libevent的附加组件如http和dns库都实现不好,且有安全问题. libev因libevent而诞生,对libevent做了改进,避免使用全局变量,拆分watcher等.另外libev去掉了外部库(比如http和d…
Netty源码分析(完整版) 前言 前段时间公司准备改造redis的客户端, 原生的客户端是阻塞式链接, 并且链接池初始化的链接数并不高, 高并发场景会有获取不到连接的尴尬, 所以考虑了用netty长连接解决连接数和阻塞io问题 为此详细阅读了netty源码, 熟悉了netty的各个主要的特性以及疏通各个组件的关联关系, 所以想把这段时间的学习内容, 学习经验毫无保留的分享给大家, 自己提高的同时也帮助大家一起成长 内容中我会把每个知识点通过每个章节去进行剖析, 每个章节也会尽可能的将关键的流程…
笔者简言 笔者在博园里面注册是在二年前.可是那个时候我不知道要写些什么,也怕写出来被别人骂误人子弟.而现在却动笔了是因为前一段时间内我去参加一些大公司的面试,让笔者内心深处留下很多问号.最近三年来我一直从事.NET方面的开发.对于现在的公司我并不是很开心,原因有很多.最重要是公司让我失信于人,心灰意冷.所以我就想出去看看,也就有了面试大公司的事情.其中有一家做跟车相关的技术主管说对我的技术表示怀疑,怕我不能上手JAVA.所以我就想着借助博园来帮我复习记录,同时希望能帮助他人了解Struts2.如…
一.基本概念 Java容器类库的用途是"保存对象",容器库类分为两个不同的分支. 1.Collection.可以保存一个或多个对象,将其保存为一个序列.Collection又可以细分为List(表),Set(集)和Queue(队列).List按照插入顺序保存对象,从索引0开始为每一个插入的对象分配一个索引.Set与List类似,但与List不同的是Set中不能有相同的对象.Queue对象产生的顺序通常与元素的插入顺序相同,一般按照先进先出的规则来删除与访问元素. 2.Map.Map(映…
记得笔者进入公司的时候接触的第一个ORM框架是Entity Framework.为了Entity Framework也看了不些的英文资料(不是笔者装B哦).正式使用三个月后.笔者对他有一个全面性的认识.我只能说他真的很强大,也很方便.可是我并不是很喜欢他.要问为什么的话,笔者只能说喜欢就是喜欢.不喜欢就是不喜欢.不需要过多的理由.笔者就是这样子的一个人.但是笔者不会忽略他的强大的一面.微软的目标还是老样子--开发简单化.只是在Entity Framework的数据迁移上面笔者不是很喜欢.至少在笔…
项目开发过程中经常使用了基于libuv库封装的库接口来实现异步处理,一直没仔细研究过这些接口的内部如何实现,因此也就没有掌握它的设计思想.今天花了点时间研究了其事件循环内部的一些过程,总算有了一些理解,理解还不够深刻,先记录下来: 1.循环流程 2.它的整体结构基于事件循环,简单的说就是外部的接口(如uv_write)其实是对内层的一个个请求,并没有做真正的事,这些请求都先存储在内部一个请求队列中,在事件循环(uv_run())中,再从请求队列中取出他们(uv_process_reqs),然后做…
新建第一个应用程序 上一章我们讲到了关于struts2核心机制.对于程序员来讲比较概念的一章.而本章笔者将会亲手写一个Hello world的例子.所以如果对struts2使用比较了解的朋友,请跳过本章.当然如果有跟笔者相同情况的朋友,我意见不烦看看我写的文章,就当打发时间来着.在前面的章节里面我们知道如果获得源码(不清楚的朋友,请查看Struts2 源码分析——前言).用Eclipse新建一个Dynamic Web Project.项目为HelloWorld.如下面等图片. 第一步:新建一个D…
ArrayList源码分析 前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体实现,一些基本的都也知道,譬如数组实现,线程不安全等等,但是更加具体的就很少去了解了,例如:初始化的长度,扩容等. 本篇主要通过一些对源码的分析,讲解几个ArrayList常见的方法,以及和Vector的区别. ArrayList 定义 public class ArrayList<E> exte…
django---APIView源码分析 前言:APIView基于View 看这部分内容一定要懂django-CBV里的内容 在django-CBV源码分析中,我们是分析的from django.views import View下的执行流程 这篇博客我们就来了解下APIView是如何执行的,跟django.views模块下的view有何关联? 我们依然从urls.py配置入手分析 from django.conf.urls import url from django.contrib impo…
目录 NIO-SocketChannel源码分析 目录 前言 ServerSocketChannelImpl 创建ServerSocketChannel 绑定和监听 接收 SocketChannelImpl SocketChannel生命周期 创建SocketChannel 连接 写数据 读数据 关闭通道 总结 相关文献 NIO-SocketChannel源码分析 目录 NIO-概览 NIO-Buffer NIO-Channel NIO-Channel接口分析 NIO-SocketChannel…