muduo网络库学习(九)日志类Logger和LogStream,将日志信息打印到屏幕

每一个成熟的项目都有大大小小的日志系统,在关键的地方打印日志信息,常用来跟踪程序运行,查找错误原因等,可以节省大量的debug时间muduo的日志信息有5个级别 TRACE,细粒度最高的日志信息,打印的最详细 DEBUG,细粒度级别上对调试有帮助的日志信息 INFO,粗粒度级别上强调程序的运行信息...

2017-10-29 18:48:34

阅读数 468

评论数 2

muduo网络库学习(八)事件驱动循环线程池EventLoopThreadPool

muduo是支持多线程的网络库,在muduo网络库学习(七)用于创建服务器的类TcpServer中也提及了TcpServer中有一个事件驱动循环线程池,线程池中存在大量线程,每个线程运行一个EventLoop::loop。线程池的作用体现在 用户启动TcpServer服务器时创建大量子线程,每个子...

2017-10-28 16:16:38

阅读数 424

评论数 0

muduo网络库学习(七)用于创建服务器的类TcpServer

目前为止,涉及到的绝大多数操作都没有提及线程,EventLoop,Poller,Channel,Acceptor,TcpConnection,这些对象的执行都是在单独线程完成,并没有设计多线程的创建销毁等。除了runInLoop函数仅仅提及了线程安全性,发现原来其实是有多个线程在同时运行的,也发现...

2017-10-27 17:05:55

阅读数 186

评论数 0

muduo网络库学习(六)缓冲区Buffer及TcpConnection的读写操作

在tcp的通信过程中,内核其实为tcp维护着一个缓冲区 当调用write/send时,会向内核缓冲区中写入数据,内核和tcp协议栈负责将缓冲区中的数据发送到指定<ip,port>的目标位置。 当有数据到达内核的tcp缓冲区中,如果开启了对套接字可读事件的监听,那么内核会让套接字变为可读...

2017-10-26 19:15:17

阅读数 1011

评论数 2

muduo网络库学习(五)服务器监听类Acceptor及Tcp连接TcpConnection的建立与关闭

通常服务器在处理客户端连接请求时,为了不阻塞在accept函数上,会将监听套接字注册到io复用函数中,当客户端请求连接时,监听套接字变为可读,随后在回调函数调用accept接收客户端连接。muduo将这一部分封装成了Acceptor类,用于执行接收客户端请求的任务。类的定义如下,主要就是监听套接字...

2017-10-25 16:42:35

阅读数 462

评论数 3

muduo网络库学习(四)事件驱动循环EventLoop

muduo的设计采用高并发服务器框架中的one loop per thread模式,即一个线程一个事件循环。 这里的loop,其实就是muduo中的EventLoop,所以到目前为止,不管是Poller,Channel还是TimerQueue都仅仅是单线程下的任务,因为这些都依赖于EventLo...

2017-10-24 14:58:03

阅读数 633

评论数 1

muduo网络库学习(三)定时器TimerQueue的设计

Linux下用于获取当前时间的函数有 time(2) / time_t (秒) ftime(3) / struct timeb (毫秒) gettimeofday(2) / struct timeval (微秒) clock_gettime(2) / struct timespec (纳秒) 定时...

2017-10-23 22:27:34

阅读数 474

评论数 0

muduo网络库学习(二)对套接字和监听事件的封装Channel

muduo对描述符fd,需要监听的事件events,当fd被激活调用的可读/可写/关闭/错误回调函数进行了封装,实现在Channel类中,Poller监听的其实就是一个个Channel对象,Channel可以向Poller注册自己关心的事件,当被激活后调用相应的回调函数。类似libevent的st...

2017-10-23 19:23:34

阅读数 340

评论数 0

muduo网络库学习(一)对io复用的封装Poller,面向对象与基于对象

高效并发的网络框架大多离不开io多路复用函数,Linux下有三种 select poll epoll 关于三者的区别可以参考 linux网络编程—–几种服务器模型及io多路复用函数 前段时间看Libevent源码时也学习过对epoll/poll/select的封装,但是毕竟c语言写的库,是通过函...

2017-10-23 18:34:46

阅读数 399

评论数 2

提示
确定要删除当前文章?
取消 删除