摘要: 基本的数据结构 大图:https://drive.google.com/file/d/1s5Y_xPB_k gOXxC1iwG60Jx0kb8yyQ1b/view?usp=sharing 基本设计 将内存按照1KB, 2KB, 4KB, 8KB, 16KB, 64KB, 128KB, 256KB, 阅读全文
posted @ 2018-06-23 16:28 BruceChen7 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 类型 Lua是动态类型的语言,你不需要显示定义类型。有8种基本类型:nil,boolean ,number, string,userdata,function,thread,和 table nil 和 false 在条件语句表示不满足,任何其它的类型值都是真。对数的所有操作是和c语言的基本操作是一样 阅读全文
posted @ 2018-06-23 13:43 BruceChen7 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 代码来源 "libco" 是微信网络框架svrkit/summer的协程库。在网络IO操作较多的服务下,协程能够帮助提高服务的并发。在进行网络io操作的时候,让出cpu,服务更多的请求。 重要的数据结构 更大的图,见https://drive.google.com/file/d/1hyxb 5kwo 阅读全文
posted @ 2018-04-14 20:32 BruceChen7 阅读(871) 评论(0) 推荐(0) 编辑
摘要: 在util/env_test.cc中,我们跟踪TEST一个单元测试的实现。首先,在main函数中: 点击RunAllTests(),查看源码: 首先获取LEVELDB_TESTS的环境变量:先不看 if (matcher != NULL)的流程,是打印出test.base和 test.name,然后 阅读全文
posted @ 2018-03-17 12:57 BruceChen7 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 资料来源 https://golang.org/doc/effective_go.html concurrency https://talks.golang.org/2012/concurrency.slide 34 https://speakerdeck.com/kavya719/understa 阅读全文
posted @ 2017-08-13 13:37 BruceChen7 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 背景介绍 dyad是一个异步网络库,目标是可移植、轻量级、易于使用。地址位于https://github.com/rxi/dyad。 echoserver如何写 我们来看看一个简单的echo Server来看看其API的设计 我们从这个例子中,看到了几个简单的API: dyad_init(); dy 阅读全文
posted @ 2017-08-13 13:20 BruceChen7 阅读(1105) 评论(0) 推荐(0) 编辑
摘要: 简介 Tinyhttpd是一个不到500行的简单http服务器。 Makefile解析 我们通过nc来调试 nc 127.0.0.1 4000 因为fafafafa是乱输入的,所以不支持该方法,上述是httpd返回的值。其执行流程如下: 下面是一个完整是GET一个完整的HTTP报文头部字段,返回的是 阅读全文
posted @ 2017-08-13 13:07 BruceChen7 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 代码来源 tornado1.2版本下httpserver.py listen fd的读事件回调 Tornado定义类HTTPServer来表示一个HTTP服务器,该类在构造函数中会传入事件循环ioloop,和Application对象。同时该HTTPServer提供了如下几种方法: listen() 阅读全文
posted @ 2017-08-13 13:00 BruceChen7 阅读(519) 评论(0) 推荐(0) 编辑
摘要: hello world tornado提供了高效的异步机制,我们先不管Application实例化过程,以及http_server创建socket、bind、listen的过程,直接调IOLoop.instance().start进行源码分析。 IOLoop.instance() 显然是一个单例模式 阅读全文
posted @ 2017-08-13 12:46 BruceChen7 阅读(980) 评论(0) 推荐(0) 编辑
摘要: Tornado是什么 一个网络框架,同时也是一个异步网络库。其网络库适合长轮训和网络库。 源码下载 从 "这里" 将源码进行下载,下载后切换到分支1.2,因为最小的版本,则意味着源码分析的难度降低。我们看看如何切换。 切换分支到1.2 可以看到现在我么那种本地分支master分支上。通过git br 阅读全文
posted @ 2017-08-13 12:31 BruceChen7 阅读(594) 评论(0) 推荐(0) 编辑