E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Muduo网络库
muduo网络库
源码复现笔记(十八):Reactor的关键结构
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:45
muduo
c++
linux
服务器
muduo网络库
源码复现笔记(十七):什么都不做的EventLoop
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:45
muduo
muduo网络库
源码复现笔记(十六):base库的LogFile.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo网络库
源码复现笔记(十四):base库的FileUtil.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo网络库
源码复现笔记(十):base库的ThreadLocalSingleton.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo网络库
源码复现笔记(十五):base库的ProcessInfo.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo网络库
源码复现笔记(十一):base库的StringPiece.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:44
muduo
muduo网络库
源码复现笔记(三):base库的Exception.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
muduo网络库
源码复现笔记(一):base库的Timestamp.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
muduo网络库
源码复现笔记(九):base库的ThreadLocal.h
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 11:14
muduo
muduo网络库
学习笔记(15):关于使用stdio和iostream的讨论
但是,在真实的项目中很少用到iostream(
muduo网络库
也不例外),本篇就对二者的优、缺点进行一个小结(主要考虑x86Linux平台,不考虑跨平台的可移植性,但是要考虑32-bit和
li27z
·
2020-08-16 11:59
muduo
C/C++
muduo网络库
源码学习————Timestamp.cc
今天开始学习陈硕先生的
muduo网络库
,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解,首先看看
缱绻的西格玛
·
2020-08-16 11:25
muduo库源码学习
muduo网络库
net篇四:TCP(1)
这几天有去面试,回来之后,懈怠了。接着阅读代码吧!TcpClient类TcpClient类主要成员数据:EventLoop*loop_;ConnectorPtrconnector_;//avoidrevealingConnectorConnectionCallbackconnectionCallback_;MessageCallbackmessageCallback_;WriteCompleteC
视此虽近_邈若山河
·
2020-08-16 11:22
muduo网络库
muduo网络库
——日志
muduo网络库
也不例外。日志级别日志一般有5个正常级别:WARN警告信息表明潜在错误。
shenmingik
·
2020-08-16 11:21
剖析moduo网络库
muduo网络库
——noncopyable.h
从这里开始就是剖析
muduo网络库
项目了。出发!!!!noncopy.h这个头文件时其他类的基类。
shenmingik
·
2020-08-16 11:21
剖析moduo网络库
Muduo网络库
源码分析(二) 定时器TimeQueue,Timer,TimerId
首先,我们先要明白为什么需要设计这样一个定时器类?在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。Muduo的TimerQueue采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的binaryheap的做法,如果程序中大量(10个以上)使用重复触发的定
YongApple
·
2020-08-16 10:22
muduo
muduo网络库
学习之Timestamp类、AtomicIntegerT 类封装中的知识点
一、Timestamp类封装classTimestamp:publicmuduo::copyable,publicboost::less_than_comparable类图如下:值语义:可以拷贝,拷贝之后,与原对象脱离关系对象语义:要么是不能拷贝;要么可以拷贝,拷贝之后与原对象仍然存在一定的关系,比如共享底层资源两者之间的关系参见这里。1、muduo::copyable空基类,标识类,值类型2、l
s1mba
·
2020-08-16 10:43
muduo网络库学习
muduo网络库
源码复现笔记(十九):TimeQueue定时器
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 10:10
muduo
muduo网络库
学习笔记(1):Timestamp类
muduo网络库
对时间戳Timestamp类也进行了封装。
li27z
·
2020-08-16 10:38
muduo
muduo网络库
定时器的实现
一:函数介绍常见的与时间相关的函数有:sleep,alarm,usleep,nanosleep,clock_nanosleep,gettimer/settitimer,timer_create/timer_settime/timer_gettime/timer_delete,还有muduo使用的timerfd_create/timerfd_gettime/timerfd_settime函数。为什么
FreeeLinux
·
2020-08-16 10:33
Muduo源码剖析
muduo源码剖析
muduo网络库
——Timestamp
这个类主要是获取当前时间,以及把当前时间转换为字符串打印出来。Timestamp.h#pragmaonce#includeclassTimestamp{public:Timestamp();explicitTimestamp(int64_tmicroSecondsSinceEpoch);//获取当前时间staticTimestampnow();//int64转换为字符串std::stringtoS
shenmingik
·
2020-08-16 10:16
剖析moduo网络库
Linux——文件系统及相关操作命令
唉,本来想这阵子把
muduo网络库
剖析完。但是最近受了伤,去医院耽搁了。结果就是。。。muduo还没整完。今天先完成一下之前欠的债。Linux的文件体系磁盘为什么要讲磁盘呢?
shenmingik
·
2020-08-16 10:16
linux
linux
muduo net库学习笔记4——事件驱动循环EventLoop、runInLoop和queueInLoop及对应唤醒
首先总体情况:每个
muduo网络库
有一个事件驱动循环线程池EventLoopThreadPool,线程池用在事件驱动循环上层,也就是事件驱动循环是线程池中的一个线程每个TcpServer对应一个事件驱动循环线程池每个线程池中有多个事件驱动线程
听说西佳佳难得很
·
2020-08-16 00:37
muduo源码
学习开源网络库muduo的一点心得
最近这一周在学习陈硕的
muduo网络库
。里面用到了好多回调函数,现在看到第八章,把其中核心的网络模型梳理了一下。
limwz
·
2020-08-15 17:55
muduo
从零开始学写HTTP服务器(六)使用
muduo网络库
muduo源码中内嵌了一个简单的HTTPserver程序,源码见muduo/net/http。看了源码之后受益匪浅。muduo里面的HttpServer目前只支持GET和HEAD方法,获取资源的Content-Type在源代码中写死,本文主要就是添加了一个读取mime.type的功能。希望之后能继续扩展这个简单的HttpServer,支持CGI和POST。(一)HttpServer跟简单的echo
NearXDU
·
2020-08-14 22:38
Http协议
muduo网络库
net篇二:定时器
Timer、TimerId类Timer类主要成员数据:constTimerCallbackcallback_;//回调函数Timestampexpiration_;//定时器超时时间constdoubleinterval_;//定时器超时时间constboolrepeat_;//interval_>0constint64_tsequence_;//定时器IdTimer类提供定时器回调函数,管理定时
视此虽近_邈若山河
·
2020-08-14 22:34
muduo网络库
muduo网络库
base篇五:进程信息 文件 日志
进程信息获取/proc/seft文件夹各文件中数据参数及系统参数文件ReadSmallFile类读取文件数据到缓冲区mutex_;time_tstartOfPeriod_;time_tlastRoll_;time_tlastFlush_;boost::scoped_ptrfile_;conststaticintkRollPerSeconds_=60*60*24;//一天默认是线程安全的写文件(利用
视此虽近_邈若山河
·
2020-08-14 22:34
muduo网络库
muduo网络库
base篇一: 大纲
上周我选择性的读了Linux/UNIX系统编程手册大部分章节,想更深入了解linux系统编程。作为一个知乎深度受害者,在知乎你读过的最好的C++开源代码是什么?问题下,看到有人提到muduo。离职也快两周了,为了下份工作充充电,作为多年没撸过C++代码的渣渣,硬着头皮开启了膜拜大师之旅。闲言少叙……我用了两天时间读了base部分代码,按照阅读顺序,主要内容如下:1.基础类2.时间日期3.异常类4.
视此虽近_邈若山河
·
2020-08-14 22:33
muduo网络库
muduo网络库
学习之EventLoop(一):事件循环类图简介
番外TCP网络编程本质TCP网络编程最本质是的处理三个半事件连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接连接断开:主动断开(close、shutdown),被动断开(read返回0)消息到达:文件描述符可读消息发送完毕:这算半个。对于低流量的服务,可不必关心这个事件;这里的发送完毕是指数据写入操作系统缓冲区,将由TCP协议栈负责数据的发送与重传,不代表对方已经
哆啦尼可夫
·
2020-08-14 22:28
muduo源码
muduo网络库
:线程池的实现
线程池问题本质上也是一个生产者-消费者问题外部线程可以向线程池中的任务队列添加任务,相当于“生产者”;一旦任务队列中有任务,就唤醒线程队列中的线程来执行这些任务,这些线程就相当于“消费者”。模型如下图。muduoThreadPool类图:任务队列的实现用到了STL的deque容器deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器
月光骆驼
·
2020-08-14 21:28
muduo网络库
muduo网络库
:Reactor模型的介绍
首先我们先了解几个问题:多线程能提高并发度吗?如果指的是“并发连接数”,那么不能。假如单纯采用threadperconnection的模型,对于32位linux,一个进程的地址空间是4G,其中用户态能访问3G左右,而一个线程的默认栈大小为10M,心算可以得到,一个进程大约最多能同时启动300个线程左右,这远远低于基于事件单线程程序所能轻松达到的并发连接数(几千上万,甚至几万)。所谓“基于事件”,指
月光骆驼
·
2020-08-14 21:28
muduo网络库
muduo网络库
源码解析(8):EventLoopThreadPool与EventLoopThread
muduo网络库
源码解析(1):多线程异步日志库(上)
muduo网络库
源码解析(2):多线程异步日志库(中)
muduo网络库
源码解析(3):多线程异步日志库(下)
muduo网络库
源码解析(4):TimerQueue
一个划水的人
·
2020-08-14 21:18
muduo网络库源码解析
Reactor模式解析——
muduo网络库
最近一段时间阅读了muduo源码,读完的感受有一个感受就是有点乱。当然不是说代码乱,是我可能还没有完全消化和理解。为了更好的学习这个库,还是要来写一些东西促进一下。我一边读一边尝试在一些地方改用c++11的新特性,这个工作持续在进行中。为啥这么干?没什么理由,纯粹是为了学习。注:本文的大部分代码和图文都来自《Linux多线程服务端编程》,可直接参考muduo的源码,或者参考我这里抄着玩儿的版本。R
weixin_34389926
·
2020-08-14 21:22
muduo学习笔记(六) 多线程的TcpServer
TcpServerEventLoopThreadPool线程池设计模式muduo中的使用连接的建立、消息、销毁on_connectionon_messageon_close简单透传服务实现@前言前面文章介绍了
muduo
weixin_30917213
·
2020-08-14 20:29
muduo网络库
第一个例子echo的编译
1.下载moduo网络库https://github.com/chenshuo/muduo2.解压方式一:把文件解压到当前目录下unziptest.zip方式二:如果要把文件解压到指定的目录下,需要用到-d参数。unzip-d/temptest.zip参考:http://www.cnblogs.com/daizhuacai/archive/2013/07/06/3174885.html3.开始安装
weixin_30711917
·
2020-08-14 20:41
muduo网络库
学习笔记(五) 链接器Connector与监听器Acceptor
目录
muduo网络库
学习笔记(五)链接器Connector与监听器AcceptorConnector系统函数connect处理非阻塞connect的步骤:Connetor时序图Acceptor系统函数acceptSocket
335046781
·
2020-08-14 20:13
muduo网络库
的快速学习方法
muduo是由陈硕开发的一个Linux多线程网络库,采用了很多新的Linux特性,项目代码量不到5000行,性能也不错。是难得的一个既能用来学习,也可以在实际生产环境中使用的网络库。地址https://github.com/chenshuo/muduo相关介绍可以见https://www.cnblogs.com/CodeComposer/p/4719783.html由于此网络库只支持Linux,不
阿龙哥哥
·
2020-08-14 20:54
c++
muduo
学习
muduo网络库
学习(九)日志类Logger和LogStream,将日志信息打印到屏幕
每一个成熟的项目都有大大小小的日志系统,在关键的地方打印日志信息,常用来跟踪程序运行,查找错误原因等,可以节省大量的debug时间muduo的日志信息有5个级别TRACE,细粒度最高的日志信息,打印的最详细DEBUG,细粒度级别上对调试有帮助的日志信息INFO,粗粒度级别上强调程序的运行信息WARN,程序能正常运行,但存在潜在风险的信息ERROR,执行出错,但不影响程序继续执行的错误信息FATAL
一个程序渣渣的小后院
·
2020-08-14 19:38
muduo源码学习
muduo网络库源码分析
muduo网络库
学习(四)事件驱动循环EventLoop
muduo的设计采用高并发服务器框架中的oneloopperthread模式,即一个线程一个事件循环。这里的loop,其实就是muduo中的EventLoop,所以到目前为止,不管是Poller,Channel还是TimerQueue都仅仅是单线程下的任务,因为这些都依赖于EventLoop。这每一个EventLoop,其实也就是一个Reactor模型。而多线程体现在EventLoop的上层,即在
一个程序渣渣的小后院
·
2020-08-14 19:38
muduo源码学习
muduo网络库源码分析
muduo网络库
脉络分析(1)
转自:http://blog.csdn.net/shreck66/article/details/50945929去年看
muduo网络库
时没有总结博文,导致前段时间用muduo时发现好多东西都模模糊糊,
Barry__
·
2020-08-14 19:43
Linux服务器编程
muduo
muduo网络库
源码剖析系列
1.muduo源码剖析专栏注:此系列来自于专栏:https://blog.csdn.net/FreeeLinux/column/info/13805muduo库的Socket封装muduo库的Acceptor类剖析muduo库的TcpServer和TcpConnection用法muduo应用层缓冲区设计muduo库TcpConnection对send、shutdown、SIGPIPE的处理mudu
Baymax_yan
·
2020-08-14 19:06
muduo
【Muduo源码分析】 Muduo源码分析系列总览
本系列主要是分析
Muduo网络库
的执行流程,让大家有一个大致的认识。网络库主要是完成对三个半事件的关注。
hello_ape
·
2020-08-14 17:53
Muduo
muduo网络库
源码阅读Step by Step
一般写服务端程序都需要有一个称手的网络库来帮我们处理琐碎的网络通信细节,比如连接的建立、关闭,读取数据,发送数据,接收、发送缓冲区的管理等,常用的C/C++网络库有libevent,asio,libev,我们项目组使用的是
muduo
eyucham
·
2020-08-14 17:16
muduo
Muduo网络库
源码剖析 | 线程池 ThreadPool的设计与实现
文章目录ThreadPool.hThreadPool.cc线程池本质就是一个生产者-消费者模型,它维护一个线程队列和任务队列。一旦任务队列当中有任务,相当于生产者生产了东西,就唤醒线程队列中的线程来执行这些任务。那么,这些线程就相当于消费者线程。Muduo库的线程数目属于启动时配置,当线程池启动时,线程数目就已经固定下来。由于Muduo库是基于对象编程的设计理念,所以Muduo库的任务队列中存放的
ZY-JIMMY
·
2020-08-14 16:50
C++程序设计
Muduo网络库
源码分析之对socket及其相关操作的封装
主要涉及到的类和实现文件有:Endian.h提供了字节序转换的函数。Socket.h/Socket.ccsocketfd的封装,提供了绑定地址、开始listen、接受连接等操作,并可设置套接字选项。InetAddress.h/InetAddress.cc套接字地址的封装,提供了多种方式初始化一个地址,还提供方法从地址中拿到ip和port。SocketsOps.h/SocketsOps.cc封装了s
Tanswer_
·
2020-08-14 16:51
Linux网络编程
Muduo网络库源码分析
muduo
socket
inetaddr
字节序转换
socket相关操作
muduo网络库
学习之muduo_http 库涉及到的类
1、httprequest:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:Get,Post,Head,Put,Delete等协议版本1.0、1.1常用请求头Accept:浏览器可接受的媒体(MIME)类型;Accept-Language:浏览器所希望的语言种类Accept-Encoding:浏
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之muduo_inspect 库涉及到的类
muduoinspect库通过HTTP方式为服务器提供监控接口,现在只实现进程相关信息的监控,通过成员ProcessInspector实现。ProcessInspector//通过ProcessInfo返回进程信息ProcessInfo//获取进程相关信息我们可以参照ProcessInspector实现一个如TcpStateInspector,作为Inspector的成员,这样就可以实现对Tcp连
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之EventLoop(四):EventLoopThread 类、EventLoopThreadPool 类
1、EventLoopThread(IO线程类)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程IO线程不一定是主线程muduo并发模型oneloopperthread+threadpool(计算线程池)为了方便今后使用,定义了EventLoopThread类,该类封装了IO线程EventLoopThread创建了一个线程在线程函数中创建了一个EvenLoop对象并调用Event
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之Logger类、LogStream类、LogFile类封装中的知识点
一、Logger类、LogStream类1、日志作用开发过程中:调试错误更好的理解程序运行过程中:诊断系统故障并处理记录系统运行状态2、日志级别TRACE指出比DEBUG粒度更细的一些信息事件(开发过程中使用)DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的。(开发过程中使用)INFO表明消息在粗粒度级别上突出强调应用程序的运行过程。WARN系统能正常运行,但可能会出现潜在错误的情形。ER
s1mba
·
2020-08-14 16:09
muduo网络库学习
Muduo网络库
源码分析(五)Acceptor和TcpServer类
首先,我们先提一下对Socket的封装(不复杂,所以简单说一下)。Endian.h:封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。Socket.h/Socket.cc(Socket类):用RAII方法封装socketfiledescriptor。InetAddress.h
NK_test
·
2020-08-14 16:58
Linux基础及编程
Muduo源码分析
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他