handy网络库源码阅读】的更多相关文章

简洁易用的C++11网络库,From:https://github.com/yedf/handy 在整理过去的资料过程中,发现过去有关注过这一个网络库,简单看了一下属于轻量级的实现,因此本文将对该库进行简单的学习之旅,目标是对网络基础知识进一步巩固. 编译和运行 库目前实现了linux和mac环境,需要支持C++11因此gcc的版本要大于4.8,在我的虚拟机ubuntu12.04是要升级gcc版本,然后使用云centos 7,之前安装的cmake版本是2.8.12,与要求的版本大于3.2不匹配,…
2017年11月22日00:25:54 对lib下面的TH的大致结构基本上理解了,我阅读pytorch底层代码的目的是为了知道 python层面那个_C模块是个什么东西,底层完全黑箱的话对于理解pytorch的优缺点太欠缺了. 看到 TH 的 Tensor 结构体定义中offset等变量时不甚理解,然后搜到个大牛的博客,下面是第一篇: 从零开始山寨Caffe·零:必先利其器 快速浏览了一下这个系列,看的压力山大... 大致理解是offset是为了让Tensor在内存中线性化存储,计算和传输成本低…
今天开始学习陈硕先生的muduo网络库,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解,首先看看UTC时间戳,源码目录为base文件夹: Timestamp.h //UTC时间戳 //类声明文件 #ifndef MUDUO_BASE_TIMESTAMP_H #define MUDUO_BASE_TIMESTAMP_H #include <muduo/base/copyable.h>…
一.前言 Redis网络库是一个单线程EPOLL模型的网络库,和Memcached使用的libevent相比,它没有那么庞大,代码一共2000多行,因此比较容易分析.其实网上已经有非常多有关这个网络库的分析了,但是我觉得它们的不足在于只是分析了各个文件中各个函数的单独含义,而没有将其统一起来,不能给读者一种宏观的把握.比如我如果想把这个网络库直接拿出来为我所用该怎么办,但是 @浅墨 学长已经完成了这个事,他拿出了Redis网络部分的代码,设计了应用层协议,添加了应用层buffer,定义了服务器类…
muduo库里面的线程池是固定线程池,即创建的线程池里面的线程个数是一定的,不是动态的.线程池里面一般要包含线程队列还有任务队列,外部程序将任务存放到线程池的任务队列中,线程池中的线程队列执行任务,也是一种生产者和消费者模型.muduo库中的线程池源码如下: 线程池头文件ThreadPool.h //线程池 // Use of this source code is governed by a BSD-style license // that can be found in the Licen…
muduo库里面的线程类是使用基于对象的编程思想,源码目录为muduo/base,如下所示: 线程类头文件: // Use of this source code is governed by a BSD-style license // that can be found in the License file. // // Author: Shuo Chen (chenshuo at chenshuo dot com) //线程类 #ifndef MUDUO_BASE_THREAD_H #d…
muduo源码的互斥锁源码位于muduo/base,Mutex.h,进行了两个类的封装,在实际的使用中更常使用MutexLockGuard类,因为该类可以在析构函数中自动解锁,避免了某些情况忘记解锁.代码如下所示: // Use of this source code is governed by a BSD-style license // that can be found in the License file. // // Author: Shuo Chen (chenshuo at c…
muduo库线程特定数据源码文件为ThreadLocal.h //线程本地存储 // Use of this source code is governed by a BSD-style license // that can be found in the License file. // // Author: Shuo Chen (chenshuo at chenshuo dot com) #ifndef MUDUO_BASE_THREADLOCAL_H #define MUDUO_BASE…
置顶:将pytorch clone到本地,查看initial commit,已经是麻雀虽小五脏俱全了,非常适合作为学习模板. 2017年12月7日01:24:15 2017-10-25 17:51 参考了知乎问题  如何有效地阅读PyTorch的源代码? 相关回答 按照构建顺序来阅读代码是很聪明的方法. 1,TH中最核心的是THStorage.THTensor, THStorage实现了底层数据(其实就是一个数组), THTensor实现了对底层数据的查看. 2,TH: 核心就THStorage…
muduo库里面的实现日志滚动有两种条件,一种是日志文件大小达到预设值,另一种是时间到达超过当天.滚动日志类的文件是LogFile.cc ,LogFile.h 代码如下: LogFile.cc #include <muduo/base/LogFile.h> #include <muduo/base/Logging.h> // strerror_tl #include <muduo/base/ProcessInfo.h> #include <assert.h>…