随笔分类 -  muduo学习笔记

摘要:@[toc] 前言 前面文章介绍了muduo网络库的单线程设计方式,即一个EventLoop 处理所有的事件,包括链接的建立、IO、计算、以及链接的销毁,本文介绍下muduo中的多线程设计方法。 多线程TcpServer EventLoopThreadPool 多线程的muduo::TcpServe 阅读全文
posted @ 2019-03-20 11:49 靑い空゛ 阅读(1836) 评论(0) 推荐(2) 编辑
摘要:@[toc] 前言 最近小程序要用到定时器,找了一圈也没找到合适的,最后还是绕回来选择了muduo里面的TimerQueue,整理了下它的代码,独立了出来,因为实在懒得从头写一个 !。 原来的muduo中TimerQueue是专为EventLoop提供定时功能的组件,我在笔记[ muduo网络库学习 阅读全文
posted @ 2019-01-24 11:00 靑い空゛ 阅读(2102) 评论(0) 推荐(0) 编辑
摘要:[TOC] epoll介绍 epoll的行为与poll(2)相似,监视多个有IO事件的文件描述符。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epol 阅读全文
posted @ 2018-12-27 10:04 靑い空゛ 阅读(8628) 评论(0) 推荐(2) 编辑
摘要:[TOC] 本篇结束muduo网络库部分学习的笔记,总结一下muduo网络库的模块组成,同时会提供笔记中个模块的实现代码,这些模块代码单独抽出同时去除了muduo中对boost的依赖,改用c++11中的组件或者用单独的类替换,会使得muduo的各个组件会更为简洁易学。 基于C++11的muduo : 阅读全文
posted @ 2018-12-08 14:16 靑い空゛ 阅读(12719) 评论(3) 推荐(5) 编辑
摘要:基于C++11实现线程池的工作原理. [TOC] 不久前写过一篇线程池,那时候刚用C++写东西不久,很多C++标准库里面的东西没怎么用,今天基于C++11重新实现了一个线程池。 简介 :一种线程的使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者 阅读全文
posted @ 2018-11-25 20:06 靑い空゛ 阅读(47492) 评论(7) 推荐(19) 编辑
摘要:muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor 标签: muduo Connector Acceptor [TOC] 本篇继续为前面封装的EventLoop添加事件,到现在共给EventLoop添加了两个fd,Timerfd,EventFd分别用于处理定时任务和通知 阅读全文
posted @ 2018-11-17 13:19 靑い空゛ 阅读(1697) 评论(0) 推荐(0) 编辑
摘要:muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 [TOC] 上篇文章为EventLoop添加了一个定时器Fd,为EventLoop增加了3个接口:runAfter()、runAt()、runEvery()、这三个接口用于处理定时任务和周期任务. 底层通过封装TimerFd实现。 阅读全文
posted @ 2018-11-14 23:31 靑い空゛ 阅读(2651) 评论(1) 推荐(1) 编辑
摘要:muduo网络库学习笔记(三)TimerQueue定时器队列 [TOC] TimerQueue是EventLoop的组件之一,可以提供定时任务,和周期任务。 本章首先会简述关于timerfd系统定时函数的基本使用,和TimerQueue类的封装结构,最后给出TimerQueue::addTimer( 阅读全文
posted @ 2018-11-11 18:57 靑い空゛ 阅读(3544) 评论(0) 推荐(0) 编辑
摘要:muduo学习笔记(二)Reactor关键结构 [TOC] Reactor简述 什么是Reactor 是一种基于事件驱动的设计模式,即通过回调机制,我们将事件的接口注册到Reactor上,当事件发生之后,就会回调注册的接口。 : :即一些I/O复用机制select、poll、epoll等.程序将事件 阅读全文
posted @ 2018-10-31 22:33 靑い空゛ 阅读(2389) 评论(1) 推荐(0) 编辑
摘要:Muduo学习笔记(一) 什么都不做的EventLoop EventLoop EventLoop的基本接口包括构造、析构、loop()。 One Loop Per Thread 一个线程只有一个EventLoop对象、如果当前线程创建了其他 EventLoop对象,则终止程序. CurrentThr 阅读全文
posted @ 2018-10-25 20:13 靑い空゛ 阅读(1723) 评论(0) 推荐(0) 编辑
摘要:一个轻巧高效的多线程c++stream风格异步日志(二) [TOC] 前言 本文紧接上一篇文章: 介绍上文中的一条条日志是如何异步导入本地文件的. 首先会简单介绍下LogFile类,之后会具体讲解下AsyncLogging中的双缓冲机制. 整个日志模块的结构图, LogFile类 LogFile日志 阅读全文
posted @ 2018-09-05 09:25 靑い空゛ 阅读(2780) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示