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
库解析之base/Atomic
类名:Atomic文件:base/Atomic.h作用:提供数值的类型的原子操作支持解析:Atomic为模板类,继承自noncopyable表示不允许复制。Atomic主要通过以下几个函数实现:__sync_val_compare_and_swap:读出旧值,旧值与存储值相同则写入__sync_fetch_and_add:先获取值,再自加__sync_lock_test_and_set:将valu
大胆@刁民
·
2019-05-29 22:02
linux
Muduo
分析及总结(二)Channel
Muduo
用户一般不直接使用Channel,而会使用更上层的封装,如TcpConnection。Channel的生命期由其ownercalss负责
奔跑的哇牛
·
2019-05-22 23:38
Muduo
Muduo源码阅读总结
简单的TCP带宽测试工具TTCP
源码可以从陈硕的github上下载到,位置在
muduo
-master\examples\ace\ttcpTTCP是一个传统的测试TCP性能的工具,它主要测试两个机器之间TCP的吞吐量,在应用层模拟消息传递的过程
CL_XYZ
·
2019-05-07 14:14
开源code
C++
muduo
网络库知识分享01 - Linux平台下
muduo
网络库源码编译安装
Muduo
isamultithreadedC++networklibrarybasedonthereactorpattern.
muduo
库的介绍就是:一个基于reactor反应堆模型的多线程C++网络库
大秦坑王
·
2019-04-05 00:20
Muduo
muduo
网络库架构总结(系列)
出处:http://www.cnblogs.com/ailumiyana/目录
muduo
网络库简介
muduo
网络库模块组成Recator反应器EventLoop的两个组件TimerQueue定时器EventfdConnector
Alisa_xf
·
2019-03-30 07:36
muduo
muduo
架构解析
原文:https://blog.csdn.net/Swartz2015/article/details/56675082
muduo
是一个基于Reactor模式的C++网络库。
Alisa_xf
·
2019-03-30 07:42
网络通信
muduo
Linux多线程服务端编程学习(三):非阻塞网络编程中应用层Buffer的必需性
本文的内容参照了陈硕先生的
muduo
网络库,本篇文章源码的地址为:https://github.com/freshman94/NetLib原因问题一:在非阻塞网络编程中,为什么要使用应用层发送缓冲区?
freshman94
·
2019-03-21 23:36
多线程网络编程
muduo
学习笔记(六) 多线程的TcpServer
目录前言多线程TcpServerEventLoopThreadPool线程池设计模式
muduo
中的使用连接的建立、消息、销毁on_connectionon_messageon_close简单透传服务实现
艾露米婭娜
·
2019-03-20 11:00
MyLibco 协程网络库定时器的设计
时间戳类(基本摘自
muduo
)//Timestamp.hnamespaceTattoo{classTimestamp{public:Timestamp();explicitTimestamp(int64
Tattoo_Welkin
·
2019-03-16 21:55
协程
《Linux多线程服务端编程:使用
muduo
C++网络库》笔记(1)
以往完全没学过服务端、os等相关知识,甚至于C++语法还有好多没涉及到过,所以在阅读本书过程中遇到了好多全新的知识,一遍阅读理解有限,先记录一下。相关知识了解过少,下面分类可能不对,主要是记录新遇到的知识点、学过但遗忘的知识点。C++/C++11sizeof首先这不是函数,也不是return一类的操作符关键字,是一个特殊的宏,会在编译期求解注意是编译期求解所以内部表达式编译后会成为最后值,运行时不
coologic
·
2019-02-24 00:10
【
muduo
】net篇---TcpServer
TcpServer在创建的过程中,首先new出来自己的核心组件(Acceptor,loop,connectionMap,threadPool)之后TcpServer会向Acceptor注册一个新连接到来时的Connection回调函数。一旦接受到一个client的连接,就会调用TcpServer::newConnection()函数。这个函数使用round-robin算法从EventLoopT
lx青萍之末
·
2019-02-21 10:04
muduo网络库
【
muduo
】net篇---EventLoopThread和EventLoopThreadPool
EventLoopThread是事件循环线程,包含一个Thread对象,一个EventLoop对象。在构造函数中,把EventLoopThread::threadFunc注册到Thread对象中(线程启动时会回调)。 EventLoopThreadPool是事件循环线程池,管理所有客户端连接,每个线程都有唯一一个事件循环。可以调用setThreadNum设置线程的数目。#include#in
lx青萍之末
·
2019-02-20 22:18
muduo网络库
【
muduo
】net篇---EventLoop
EventLoop类调用Poller::poll()进行I/O复用,返回活跃事件列表,然后遍历该列表,依次调用每一个活跃Channel的事件处理函数handleEvent(),最终回调了TcpConnection注册过来的函数。#include#include#include#include#include#include#include#include#include#include#inc
lx青萍之末
·
2019-02-20 22:35
muduo网络库
【
muduo
】net篇---Poller
#include#include#include#include#include#include#include#includeusingnamespace
muduo
;usingnamespace
lx青萍之末
·
2019-02-20 22:40
muduo网络库
【
muduo
】net篇---Channel
Channel类和文件描述符一一对应,它保存了所关心的文件描述符(fd_)、关注的事件(从TcpConnection那边注册的readCallback_、writeCallback_等)、poller返回的事件。Channel类对象被传到Poller类中进行poll(),返回时,成员变量revents_会被改写,handleEvent正是根据这个revents_来执行读/写/出错操作(回调Tc
lx青萍之末
·
2019-02-20 21:05
muduo网络库
muduo
和
muduo
-tutorial编译相关问题
最近在看陈硕老师的《Linux多线程服务端编程:使用
muduo
C++网络库》,里面用到的
muduo
代码量不是特别多,很适合初学者学习C++网络编程。在使用
muduo
的时候发现了两个问题,在此做下记录。
LZT_SZITMAN
·
2019-01-30 21:57
一个基于C++11的定时器队列(timerfd,poll实现)
目录前言优点test源代码@前言最近小程序要用到定时器,找了一圈也没找到合适的,最后还是绕回来选择了
muduo
里面的TimerQueue,整理了下它的代码,独立了出来,因为实在懒得从头写一个--!。
艾露米婭娜
·
2019-01-24 11:00
c++ 检测成员函数
1.检测是否存在特定成员函数
muduo
框架中有这样一段代码:vi
muduo
/base/Singleton.htemplatestructhas_no_destroy{templatestaticchartest
tcspecial
·
2019-01-20 20:00
c++
sfinae
c++ 检测成员函数
1.检测是否存在特定成员函数
muduo
框架中有这样一段代码:vi
muduo
/base/Singleton.htemplatestructhas_no_destroy{templatestaticchartest
tcspecial
·
2019-01-20 20:00
c++
sfinae
【
muduo
】base篇---ThreadPool
二、ThreadPool源码#ifndef
MUDUO
_BASE_THREADPOOL_H#define
MUDUO
_BASE_THREADPOOL_H#include#include#include#include
lx青萍之末
·
2019-01-15 21:42
muduo网络库
【
muduo
】base篇---Atomic
文章目录一、原子性操作的概念二、Atomic源码分析三、volatile关键字详解1、volatile关键字的概念2、volatile与多线程有关系吗?3、计算机中内存、cache和寄存器之间的关系及区别4、volatile关键字的三大特性(1)易变性(2)不可优化(3)顺序性一、原子性操作的概念 所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局
lx青萍之末
·
2019-01-09 21:23
muduo网络库
muduo
网络库的安装和使用
一、安装依赖库#安装cmakesudoapt-getinstallcmake#安装boostsudoapt-getinstalllibboost-devlibboost-test-dev#三个非必须的依赖库:curl、c-aresDNS、GoogleProtobufsudoapt-getinstalllibcurl4-openssl-devlibc-ares-devsudoapt-getinsta
lx青萍之末
·
2018-12-20 19:37
muduo网络库
muduo
网络库架构总结
目录
muduo
网络库简介
muduo
网络库模块组成Recator反应器EventLoop的两个组件TimerQueue定时器EventfdConnector和Acceptor连接器和监听器AcceptorConnectorTcpConnectionTcpServer
艾露米婭娜
·
2018-12-08 14:00
muduo
网络库学习笔记(五) 链接器Connector与监听器Acceptor
目录
muduo
网络库学习笔记(五)链接器Connector与监听器AcceptorConnector系统函数connect处理非阻塞connect的步骤:Connetor时序图Acceptor系统函数acceptSocket
艾露米婭娜
·
2018-11-17 13:00
muduo
网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录
muduo
网络库学习笔记(四)通过eventfd实现的事件通知机制eventfd的使用eventfd系统函数使用示例EventLoop对eventfd的封装工作时序runInLoop()queueInLoop
艾露米婭娜
·
2018-11-14 23:00
muduo
网络库学习笔记(三)TimerQueue定时器队列
目录
muduo
网络库学习笔记(三)TimerQueue定时器队列Linux中的时间函数timerfd简单使用介绍timerfd示例
muduo
中对timerfd的封装TimerQueue的结构.TimerTimer
艾露米婭娜
·
2018-11-11 18:00
muduo
学习笔记(二)Reactor关键结构
目录
muduo
学习笔记(二)Reactor关键结构Reactor简述什么是ReactorReactor模型的优缺点poll简述poll使用样例
muduo
Reactor关键结构ChannelPollerEventLoopReactor
艾露米婭娜
·
2018-10-31 22:00
muduo
源码分析:Channel类 (事件分发器)
事件分发类Channel事件分发器Channel的数据成员如下://定义事件类型变量staticconstintkNoneEvent;//无事件staticconstintkReadEvent;//可读事件staticconstintkWriteEvent;//可写事件EventLoop*loop_;//channel所属的loopconstintfd_;//channel负责的文件描述符inte
amoscykl
·
2018-10-31 01:30
moduo网络库
muduo源码分析
muduo
中的Buffer类设计
http://www.cnblogs.com/Solstice/archive/2011/04/17/2018801.htmlhttps://blog.csdn.net/FreeeLinux/article/details/53591736?utm_source=blogxgwz1知识点1:boost::nocopyable学习学习链接:https://blog.csdn.net/huangjh2
Junior888
·
2018-10-21 16:13
muduo
学习笔记(二)
长连接有四种方法:消息长度固定;使用特殊的字符或者字符串作为消息边界,如http协议的headers以"\r\n"为字段的分隔符每条消息的头部加一个长度字段利用消息本身的格式分包
muduo
的IO模型应用程序只管生成数据
duangyhn
·
2018-10-13 13:28
网络编程
muduo
学习笔记(一)
单线程服务器编程模型reactor模式:non-blockingIO+IOmultiplexing模型这种模型的程序基本结构:一个事件循环(eventloop),以事件驱动(event-driven)和事件回调的方式实现业务逻辑:while(!done){inttimeout_ms=max(1000,getNextTimedCallback());intretval=::poll(fds,nfds
duangyhn
·
2018-10-13 09:45
网络编程
C/C++网络库
ACE:参考:https://blog.csdn.net/solstice/article/details/5364096注:篇博文的作者是陈硕,正是下面介绍的
muduo
项目的作者。
muziwenrong
·
2018-10-10 15:46
C/C++
muduo
定时器实例
借用c11版的
muduo
库,git地址:https://github.com/AlexStocks/
muduo
.gitTimerManager.h#pragmaonce#include#include#
jlaij
·
2018-10-07 14:23
c/c++
一些未完成的计划
数据结构与算法》的学习完成CSAPP的学习以及相应的实验与南大的附加nemu完成操作系统课程的学习完成《C++编程规范101条规则》的阅读完成《深入理解C++11》的阅读再次阅读《Linux多线程服务端编程:使用
muduo
C
乖张的小乌龟
·
2018-10-04 01:44
c++游戏服务器框架
1、skynet是一个开源的,轻量级的,为在线游戏服务器打造的框架https://github.com/cloudwu/skynet2、
muduo
是一个基于Reactor模式的C++网络库https:/
菩提本无树何处惹尘埃
·
2018-09-14 15:40
文章类
一个轻巧高效的多线程c++stream风格异步日志(一)
stream风格异步日志一个轻巧高效的多线程c++stream风格异步日志前言功能需求性能需求Logger实现LogStream类Logger类LogStream及Loggercpp源码前言本文主要实现
muduo
艾露米婭娜
·
2018-08-24 09:00
c++ 高性能日志库(
muduo
_AsyncLogging)
c++高性能日志库(
muduo
_AsyncLogging)实现一个高效的网络日志库要解决那些问题?
aocan6909
·
2018-04-19 21:00
c/c++
前端
后端
1. Mutex.h——互斥量
Mutex.h互斥量,每个需要共享的资源类,都持有一个MutexLock封装
muduo
使用MutexLock类封装互斥量,同时该类的实例不能被复制。
Myth52125
·
2017-12-10 01:43
【大牛之路】如何在github上为开源项目贡献
前言我们在学习的日常中会用到的各种开源软件,大一点的Linux,Apache,Nginx,MySQL,Redis,小一点的
Muduo
,Axel,那么如何去给一个开源项目做贡献呢。
XiyouLinux_Kangyijie
·
2017-11-22 17:57
小小总结
大牛之路
33
muduo
_net库源码分析(九)
1.TcpServer/TcpConnection(1)Acceptor类的主要功能是socket、bind、listen(2)一般来说,在上层应用程序中,我们不直接使用Acceptor,而是把它作为TcpServer的成员TcpServer还包含了一个TcpConnection列表(3)TcpConnection与Acceptor类似,有两个重要的数据成员,Socket与Channel2.时序图
INGNIGHT
·
2017-09-10 19:49
muduo大并发服务器
32
muduo
_net库源码分析(八)
1.Acceptor(1)Acceptor用于accept(2)接受TCP连接(2)Acceptor的数据成员包括Socket、Channel,Acceptor的socket是listeningsocket(即serversocket)。Channel用于观察此socket的readable事件,并回调Accptor::handleRead(),后者调用accept(2)来接受新连接,并回调用户c
INGNIGHT
·
2017-09-10 19:50
muduo大并发服务器
18
muduo
_base库源码分析(九)
1.线程特定数据(1)在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。(2)在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。(3)但有时应用程序设计中有必要提供线程私有的全局变量,仅在某个线程中有效,但却可以跨多个函数访问。(4)POSIX线程库通过维护一定的数据结构来解决这个问题,这个些数据称为(Thread-specificData,或TSD)。(5)
INGNIGHT
·
2017-08-20 14:13
muduo大并发服务器
17
muduo
_base库源码分析(八)
1.Singleton类图线程安全Singleton类实现(1)pthread_once(2)atexit(3)typedefcharT_must_be_complete_type[sizeof(T)==0?-1:1];2.代码Singleton.h//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLice
INGNIGHT
·
2017-08-20 13:35
muduo大并发服务器
[
Muduo
网络库源码分析] (11) base/Types.h_基本类型声明
基本类型声明功能:为网络库提供基本的类型知识点:stirng的三种实现方式:用途:可用与类型转换和string的高效使用代码及分析:Types.h#ifndef
MUDUO
_BASE_TYPES_H#define
MUDUO
_BASE_TYPES_H
chudongfang2015
·
2017-08-01 14:07
Muduo网络库
Muduo网络库源码分析与实践
[
Muduo
网络库源码分析] (9) base/Thread.cc_h_CurrentThread_h线程对象
线程对象实现:实现Thread类、ThreadData结构体、CurrentThread命名空间功能:实现线程对象并实现当前线程信息存储知识点:__thread__thread是GCC内置的线程局部存储设施,存取效率可以和全局变量相比。__thread变量每一个线程有一份独立实体,各个线程的值互不干扰。可以用来修饰那些带有全局性且值可能变,但是又不值得用全局变量保护的变量。__thread使用规则
chudongfang2015
·
2017-07-31 09:15
Muduo网络库
Muduo网络库源码分析与实践
[
Muduo
网络库源码分析] (8) base/StringPiece.h_字符串参数传递类型
字符串参数传递类型实现:StringPiece、StringArg类功能:实现字符串类型、字符串参数传递类型知识点:__type_traits对一个类型进行描述,从而对其运算速度进行优化reinterpret_cast其可以进行指针间的转换,并且其可以实现指针和整数的相互转换用途:可用于字符串传参,和其他字符串处理代码及分析:StringPiece.h//TakenfromPCREpcre_str
chudongfang2015
·
2017-07-31 09:46
Muduo网络库
Muduo网络库源码分析与实践
[
Muduo
网络库源码分析] (6) base/Mutex.h_互斥锁操作
互斥锁操作功能:封装对互斥锁的操作知识点:MCHECK()宏的实现#defineMCHECK(ret)({__typeof__(ret)errnum=(ret);\if(__builtin_expect(errnum!=0,0))\__assert_perror_fail(errnum,__FILE__,__LINE__,__func__);})线程与锁的对应关系用途:可用于多线程互斥锁的操作亮点
chudongfang2015
·
2017-07-31 09:32
Muduo网络库
Muduo网络库源码分析与实践
[
Muduo
网络库源码分析] (1) base/Atomic.h_原子操作与原子整数
原子操作与原子整数前言:C/C++中数值操作,如自加(n++)自减(n–-)及赋值(n=2)操作都不是原子操作,如果是多线程程序需要使用全局计数器,程序就需要使用锁或者互斥量,对于较高并发的程序,会造成一定的性能瓶颈。为了提高赋值操作的效率,gcc提供了一组api,通过汇编级别的代码来保证赋值类操作的原子性,相对于涉及到操作系统系统调用和应用层同步的锁和互斥量,这组api的效率要高很多。类名:mu
chudongfang2015
·
2017-07-31 09:27
Muduo网络库
Muduo网络库源码分析与实践
12
muduo
_base库源码分析(三)
1.Exception类实现(1)backtrace,栈回溯,保存各个栈帧的地址(2)backtrace_symbols,根据地址,转成相应的函数符号(3)abi::__cxa_demangle2.代码Exception.h//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////A
INGNIGHT
·
2017-07-30 15:43
muduo大并发服务器
muduo
源码分析之Acceptor
ClassAcceptor:用于accept一个TCP连接,并通过回调函数通知使用者。accept接受成功后通知TCP连接的使用者,Acceptor主要是供TcpServer使用的,其生命期由后者控制,一个Acceptor相当于持有服务端的一个socket描述符,该socket可以accept多个Tcp客户端连接。Acceptor在构造时候会创建一个socket描述符--acceptSocket_
Cassie_Yan
·
2017-07-22 20:47
muduo源码分析
上一页
14
15
16
17
18
19
20
21
下一页
按字母分类:
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
其他