博客专栏  >  编程语言   >  muduo源码剖析

muduo源码剖析

针对C++网络库muduo的剖析笔记

关注
3 已关注
28篇博文
  • muduo库的Socket封装

    主要来看一下几个部分: 1.Endian.h 封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中) 2.SocketsOps.h/SocketOps.cc 封装了so...

    2016-12-10 00:33
    513
  • muduo库的Acceptor类剖析

    一:主要功能 >>>Acceptor用于accept(2)接受TCP连接。 >>>Acceptor的数据成员包括Socket、Channel。 >>>Acceptor的socket是listening...

    2016-12-10 11:13
    367
  • muduo库的TcpServer和TcpConnection用法

    TcpServer是muduo库很重要的一个类,它结合TcpConnection、Acceptor构成了一套完整的对I/O触发事件的处理机制。那么它们具体是怎么工作的呢? 先来看一个例子:

    2016-12-11 18:47
    866
  • muduo应用层缓冲区buffer设计

    一:     muduo的I/O模型采用非阻塞模式,避免阻塞在read()或write()或其他系统调用上。          TcpConnection必须要有output buffer 考虑一个常...

    2016-12-13 16:54
    537
  • muduo库TcpConnection对send、shutdown、SIGPIPE的处理

    muduo库对send的处理: muduo库的send()函数重载了三个: void send(const void* message, int len); void send(const S...

    2016-12-14 13:37
    392
  • muduo库的Connector以及TcpClient的使用

    一:Connector     Connector可以说是muduo库的连接器,负责客户端向服务器发起连接。实际上说白了就是封装了socket的connect操作。      Connector...

    2016-12-14 16:20
    645
  • muduo的http库剖析

    一:http协议     首先看一下http request: request line + header + body (header分为普通报头,请求报头与实体报头)header与body之间...

    2016-12-14 19:08
    271
  • muduo库Thread类剖析

    muduo库中的Thread类集合了所有线程的操作,其中还运用了线程安全的观察者模式。 运用shared_ptr和weak_ptr做到了生命周期的管理。 代码加注释如下: Thread.h #ifnd...

    2016-10-24 22:49
    355
  • muduo的Mutex类剖析

    muduo的mutex_lock_guard()就是利用C++的RAII机制,完成互斥锁锁的自动加锁,解锁操作,解放双手。我们只需要用一堆大括号的控制互斥锁的范围就可以了。 RAII(Resource...

    2016-10-25 00:53
    773
  • muduo库的ThreadPool剖析

    先上代码,然后分析: ThreadPool.h #ifndef MUDUO_BASE_THREADPOOL_H #define MUDUO_BASE_THREADPOOL_H #include #...

    2016-10-26 20:03
    443
  • 面向对象的风格和基于对象的风格程序设计

    下面采用两种风格实现thread类 一.基于对象的风格 先上代码: #ifndef _THREAD_H #define _THREAD_H #include class threa...

    2016-12-01 01:09
    391
  • muduo库的Timestamp类剖析

    分析之前我们先来看,Timestamp中用了一个BOOST_STATIC_ASSERT宏,这是编译时断言,而我们平时用的assert是运行时断言。 示例: #include #include...

    2016-12-01 03:08
    303
  • muduo库的AtomicIntegerT剖析

    首先来说为什么需要原子操作? 最最典型的例子:x++ 我们知道它有三个步骤,1.从内存中读x的值到寄存器中        2.对寄存器加1       3.再把新值写回x所处的内存地址 假设x的初...

    2016-12-01 04:09
    286
  • muduo库的Condition类和CountDownLatch类剖析

    condition类是封装了条件变量的操作,我以前在做服务器项目的时候也实现过封装condition。 它的实现如下: #ifndef MUDUO_BASE_CONDITION_H #define...

    2016-12-01 23:43
    409
  • muduo库的BlockingQueue和BoundBlockingQueue类剖析

    一:无界阻塞队列 muduo库的BlcokingQueue实际上用的生产这消费者模型。我们知道生产者消费者模型一般有两种实现方式,可以利用信号量也可以利用条件变量实现,muduo库采用条件变量实现...

    2016-12-02 00:33
    261
  • muduo库的Singleton类剖析

    如题,分析muduo库线程安全的单例模式类。 它的类图如下: 分析如下: #ifndef MUDUO_BASE_SINGLETON_H #define MUDUO_BASE_SI...

    2016-12-02 08:50
    337
  • muduo库的ThreadLocal类剖析

    首先来看一个概念:线程特定数据 >>>在单线程程序中,我们经常用全局变量共享数据。多线程环境下,全部变量被所有线程所共有。 >>>但有时应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有...

    2016-12-02 13:47
    357
  • muduo库的ThreadLocalSingleton类剖析

    本文剖析muduo库的ThreadLocalSingleton类,即线程本地单例类。 先来看下它的类图,它的内部嵌套的一个deleter类。 分析如下: #ifn...

    2016-12-02 14:15
    350
  • muduo库的Logger及附属类剖析

    我们先来看一下logger工作的流程: 它的宏是这样定义的(举出一例): #define LOG_INFO  if(muduo::Logger::logLevel() 这代表我们使用该LOG_INF...

    2016-12-03 01:40
    510
  • muduo库的LogFile日志文件类剖析

    之前写了muduo的Logger类的分析,今天来看一下LogFile类及其相关的类分析,之前的Logger是控制日志怎样写,怎样用,怎样实现,而今天的LogFile则是用来控制日志怎样和文件打交道。几...

    2016-12-04 14:19
    583

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部