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
一个reactor单线程网络库ccnet
缘由最近在研究陈硕的网络库
muduo
,是一个基于reactor架构的网络库。我对网络库的感觉是易用,但是内容庞大,依赖颇多。比如boost网络库里面的一些语法让人生畏。
线条君
·
2020-12-27 18:25
C/C++
网络编程
c++
epoll
网络
linux
boost asio 应用案例_libevent、libev、libuv、libhv、asio、poco、
muduo
libevent、libev、libuv、libhv、boost.asio、poco、
muduo
七种echo-server实现对比libhv中的宏艺术C语言宏基础知识golangdefer宏实现javasynchronized
weixin_39952182
·
2020-12-25 15:52
boost
asio
应用案例
muduo
库笔记1(TcpConnection是如何收发数据的)
muduo
的epoll使用的是LT触发模式。在LT模式EPOLLOUT只要在写缓冲区有空间下,就会触发,因此会造成busyloop。
muduo
hapcat
·
2020-10-20 10:41
配置Nginx,完善Nginx启动脚本
/bin/sh####seehttp://www.
muduo
.net/index.php/uid-8974-action-viewspace-itemid-310023####脚本2写的比较完善,相比脚本
jun54555
·
2020-09-17 08:21
技术文章
Netty,Kafka,
Muduo
关于时间轮的一些思考 之netty时间轮
无论是网络库,还是各种网络服务器,使用定时器永远是不可避免的,有那么多链接需要管理,不可能为每一个链接都开一个线程,也不可能每一次操作都遍历每一个链接去检查它们是否过期,高效的定时器框架是必须的.于是而定时器的经典模型时间轮应运而生.时间轮的模型其实很简单,万变不离其宗.网上有很多资料,这里我不多赘述,今天主要是讲,在我阅读开源项目时,看到的那些时间轮.首先最简单的,当属netty的时间轮.我在网
Rapper金馆长
·
2020-09-17 01:24
netty
netty
源码
时间轮
腾讯PCG(后台开发) 校招
电话面试1.
muduo
网络库定时器的实现(set,顺便将了一下runinloop函数)2.readrecv函数区别返回值为0表示什么3.tcp三次握手为什么是三次不是二次?
weixin_30278237
·
2020-09-16 21:13
面试
c/c++
网络
muduo
库源码分析(一)
noncopyable类的作用默认情况下,如果类没有声明拷贝构造函数和复制构造函数,编译器会自动的为类创建隐含的public拷贝构造机复制构造函数。但是noncopyable类的实现是将构造函数与析构函数声明为protected,将拷贝构造函数和复制构造函数声明为delete。这就意味着,除了子类自己定义拷贝构造函数或者复制构造函数,外部的调用者不能够通过拷贝构造函数或者复制构造函数创建一个新的子
weishenmax
·
2020-09-16 21:12
muduo库源码分析
学习
muduo
。
记录其中不懂然后弄懂的知识。。大部分知识皆是转载博客。1、RAII手法。(resourceacquisitionisinitialization(资源获取就是初始化))templateclassLockGuard{public:explicitLockGuard(Mutex&m):m_(m){m_.Lock();}~LockGuard(){m_.Unlock();}private:LockGuar
hqwuu
·
2020-09-16 21:02
muduo
C/C++
muduo
源码分析(一)服务端工作流程
目录0.简介1.各个类的作用:TcpServerAcceptorTcpConnectionEventLoopThreadPoolEventLoopThreadEventLoopPollerChannel2.启动3.新连接到来4.数据收发收数据发数据5.关闭连接主动关闭被动关闭参考文献0.简介最近才拜读了《Unix网络编程卷1》的前15章,书很有用,但也很枯燥。Talkischeap,showmey
Julien_Lion
·
2020-09-16 20:10
muduo
muduo
源码分析:Thread类
代码文件目录为:
muduo
/baseThreadNameInitializerThreadNameInitializer进行主线程初始化操作(利用全局变量):包括设置默认的线程name、缓存线程id。
amoscykl
·
2020-09-16 20:06
moduo网络库
muduo源码分析
muduo
C++ 网络库——线程同步精要
并发编程有两种基本模型:messagepassing消息传递和sharedmemory内存共享运行在多台机器上的多个进程的并行编程只有一种实用模型:messagepassing线程同步的四项原则:按重要性排列1.首要原则是最低限度地共享对象,减少需要同步的场合。一个对象能不暴露给别的进程就不要暴露。2.其次是使用高级的并发编程构件,如TaskQueue,Producer-ConsumerQueue
amoscykl
·
2020-09-16 20:05
moduo网络库
muduo源码分析
muduo
库整体架构简析
muduo
是一个高质量的Reactor网络库,采用oneloopperthread+threadloop架构实现,代码简洁,逻辑清晰,是学习网络编程的很好的典范。
ailongyang
·
2020-09-16 20:34
muduo
整体介绍及Echo服务器流程分析
muduo
是Ractor模式,整个核心是Reactor;EventLoop就充当了Reactor。
KangRoger
·
2020-09-16 20:27
muduo源码学习
《
Muduo
C++网络库学习一》以Observer模式谈线程安全问题
这是我学习
muduo
库的第二个阶段,前面一个阶段主要阅读了网络库部分的源码,大致了解网络通信各部分的细节。 编写线程安全的类不是难事,用同步原语(互斥量,条件变量,信号量等等)保护内部状态即可。
L.Jeremy
·
2020-09-16 15:01
Linux
linux学习笔记-
muduo
网络库设计与实现
文章目录14.
muduo
的线程模型13.用eventfd唤醒Eventloop::loop()中的poll阻塞调用12.在线程间调配任务:runInLoop(constFunctor&cb)函数11.fork
copy_O_move
·
2020-09-13 18:21
网络
从零开始写一个Redis-2
Reactor和Log文章目录Reactor和Log1.Logger1.1EasyLogging++1.2
muduo
::Logging2.Reactor2.1我的文章参考2.2简单说明2.3第一个版本2.3.1Event2.3.2EventLoop2.3.3Poller2.3.4
patientcat
·
2020-09-13 06:03
c++从零开始
c++
linux新增特性timerfd
我首次接触这个新特性是在
muduo
网络库的定时器里看到的,那么新增一个这样的定时器接口有什么意义呢?
Shreck66
·
2020-09-13 04:16
linux服务端编程
C++代码中的 __attribute__
在阅读陈硕老师的
muduo
网络库代码时,看到有以下的使用方式(GUARDED_BY---->THREAD_ANNOTATION_ATTRIBUTE__---->__attribute__)。
sdgl
·
2020-09-11 16:46
c++
muduo
为什么多线程读写 shared_ptr 要加锁?
giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux多线程服务端编程:使用
muduo
C
陈硕
·
2020-09-11 13:19
c++
C++
工程实践
检查不完全类型
看
muduo
库时候,对这里挺有疑问的。
dusda
·
2020-08-26 15:37
学习
muduo
库(14)之网络编程相关的系统函数SocketsOps.h
SocketsOps.h在这个头文件中将网络相关的系统函数进行了进一步的封装,这里的函数也都是全局函数。intsocket(intdomain,inttype,intprotocol);•domain:即协议域,又称为协议族(family)。常用的协议族有,AF_INET(IPv4)、AF_INET6(IPv6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等
请叫我少爷
·
2020-08-25 04:27
学习muduo库
学习
muduo
库(13)之evenloop类中wakeup()的概念
预备知识:eventfdeventfd是Linux2.6提供的一种系统调用,它可以用来实现事件通知。eventfd包含一个由内核维护的64位无符号整型计数器,创建eventfd时会返回一个文件描述符,进程可以通过对这个文件描述符进行read/write来读取/改变计数器的值,从而实现进程间通信。#includeinteventfd(unsignedintinitval,intflags);flag
请叫我少爷
·
2020-08-25 04:27
学习muduo库
学习
muduo
库(15)之socket类
UML:解释:从逻辑上讲这个类封装的很简单,只有一个私有变量,就是文件描述符,剩下的所有的方法,都是围绕文件描述符来展开的,而且上一篇博客中提到的sochetops.h中的所有函数都是全局函数,而这些全局函数也是在socket类中调用的。
请叫我少爷
·
2020-08-25 04:27
学习muduo库
muduo
学习笔记 线程类
learn_
muduo
线程属性线程标识pthreadId_,pid_t线程函数func_线程名字name_线程序号numCreated_boolstarted_;//线程状态标识booljoined_;
Sanzona
·
2020-08-24 22:29
muduo
muduo
笔记
学习陈硕写的网络库
muduo
,照着实现了一遍,项目地址为learn_
muduo
.文章目录base库copyable、noncopyableAtomicTimestampDateMutexConditionCountDownLatchThreadCurrentThreadExceptionBlockingQueueStringPieceLogStreamLoggingnet
Sanzona
·
2020-08-24 22:29
muduo
muduo
源码解析11-logger类
logger:classlogger{};在说这个logger类之前,先看1个关键的内部类Implprivate://logger内部数据实现类Impl,内部含有以下成员变量//时间戳,logstream数据流,日志级别,源文件行号,源文件名字.classImpl{public:typedeflogger::loglevelLogLevel;//构造函数,最重要的地方,负责把日志头信息写入到m_s
WoodInEast
·
2020-08-24 19:00
C++11 线程安全的BlockingQueue实现
参考了
muduo
的BlockingQueue的实现,用C++11改写:#ifndef_BLOCKINGQUEUE_H_#define_BLOCKINGQUEUE_H_#include#include#include
大黄鸭xD
·
2020-08-24 13:25
c++
Muduo
库的连接建立和连接断开流程
Acceptor类该类的主要作用在于创建监听描述符,然后注册并监听此描述符。具体即在构造Accept类时,会创建监听描述符,创建acceptSocket,acceptChannel,并将该监听描述符进行bind,为监听描述符的acceptChannelt注册可读回调,(其可读回调为Acceptor类所提供的handleRead接口)。在创建了Acceptor类之后,即需要向poller注册此描述符
张火油
·
2020-08-24 00:18
C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).
ptr_vector).auto_ptrscoped_ptrptr_vectorC++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).前言最近再写一个
muduo
weixin_30432007
·
2020-08-22 14:15
基于c++11标准的线程单例类的实现
/在阅读陈硕大佬的
muduo
库时,其中EventLoop类是要求每个线程单例的,因此自己实现了这个机制,用类似于enable_shared_from_this模板类的方式使用,使代码更整洁。
p__n
·
2020-08-22 11:39
c++11
多线程
C++ noncopyable类
在
muduo
中,有一个noncopyable类,继承了该类的派生类不能被拷贝,只能被移动。涉及拷贝的函数有两个:拷贝构造函数和拷贝复制操作符。
chenBright
·
2020-08-22 11:20
boost
c++
Source Insight 如何查看源码
SourceInsight查看源码使用C++的
muduo
网络库进行举例基本使用步骤【step1】:点击Project-->NewProject填写项目名称以及项目创建的路径,填写完毕点击ok即可【step2
皮卡丘~何
·
2020-08-20 20:14
muduo
库使用示例之聊天服务器(下)
借用shared_ptr实现copyonwriteshared_ptr是引用计数智能指针,如果当前只有一个观察者,那么引用计数为1,可以用shared_ptr::unique()来判断对于共享资源有两个端,分别是read端、write端对于write端,如果发现引用计数为1(说明只有一个写者访问它),这时可以安全地修改对象,不必担心有人在读它对于read端,在读之前把引用计数加1,读完之后减1,这
guojawee
·
2020-08-20 19:48
Muduo库源码剖析
muduo
网络库使用心得
上个月看了朋友推荐的mudo网络库,下完代码得知是国内同行的开源作品,甚是敬佩。下了mudo使用手冊和035版的代码看了下结构,感觉是一个比較成熟并且方便使用的网络库。本人手头也有自己的网络库,尽管不敢说是一个多强大的网络库,但毕竟在外网也稳定运营了几年,多组同一时候在线也跑过30w左右,单组server也能跑上w人。做游戏server几年的经验,感觉稳定性才是网游server最核心最重要的环节,
weixin_34221332
·
2020-08-20 19:09
muduo
网络编程分包和解包(二)
1.
muduo
使用protobuf发送结构体和对象如果发送端仅仅发送一段字符串,可以使用《
muduo
网络编程分包和解包(一)》介绍的长度+字符串的格式发送数据,但是如果想发送一个结构体或对象,需要对对象进行序列化把它转变成字节序才能发送给接收端
sunny_ss12
·
2020-08-20 18:08
linux服务器编程
muduo
环境整理,备忘
之前项目用的ubuntu14.04,g++是4.8,用的
muduo
后来改用ubuntu16.04,默认g++是5.4,用旧工程,需要先将g++降到4.8,步骤如下:apt-getinstallgcc-4.8ls
光1314光
·
2020-08-20 17:43
备忘
Mudo C++网络库第七章学习笔记
muduo
编程示例
muduo
库是设计来开发内网的网络程序,它没有做任何安全方面的加强措施,如果在公网上可能会受到攻击;
muduo
库把主动关闭连接这件事分成两步来做:如果主动关闭连接,会先关本地写端,等对方关闭之后
angbao4913
·
2020-08-20 15:56
Muduo
网络库的实现runInLoop(六)
源码下载以及安装点击链接https://blog.csdn.net/YoungSusie/article/details/90021742分类
Muduo
网络库编程学习笔记1、runInLoopEventLoop
YoungSusie
·
2020-08-20 15:11
Muduo
Muduo
源代码阅读环境搭建
工具Windows环境VSCodeSourceInsightLinux环境Vim问题VSCode中添加多行注释的快捷键配置SourceInsight中如何让.cc文件支持颜色SourceInsight中头文件与源文件切换配置SourceInsight中UTF-8中文显示为乱码问题Vim配置解决方法1.VSCode添加快捷键配置方法2..cc文件支持颜色解决方法:Options->Documents
迎仔
·
2020-08-20 14:22
工具
开源项目 MirrorLib网络库(轻量级
Muduo
)
github源码:https://github.com/Worthy-Wang/MirrorLib网络库框架简介该网络库框架模仿陈硕的
Muduo
库来实现,采用Reactor+threadpool的模式:
Worthy_Wang
·
2020-08-19 23:20
开源项目
evpp性能测试(2): 与Boost.Asio进行吞吐量对比测试
本次测试是参考陈硕的博客文章
muduo
与boostasio吞吐量对比,该文章的结论是:
muduo
吞吐量平均比asio高15%以上。我们之前做的https://git
zieckey
·
2020-08-19 23:02
evpp
muduo
框架内核剖析
muduo
网络框架分析:首先我们要分析的肯定是能撑起
muduo
框架的核心骨架,moduoreactor的核心骨架是三个类,channel、Eventpool和Poller首先看Channel,channel
序冢--磊
·
2020-08-19 19:33
c++
muduo
学习(一):EventLoop与EventLoopThread
这段时间都在学习
muduo
网络库,这里整理一下这段时间的学习笔记一、Reactor模式:
muduo
也是一种基于reactor模式开发的网络库,关于reactor模式网上已经有很多内容,这里不赘述,
muduo
宣小K
·
2020-08-19 09:47
linux后台开发
muduo
学习(二):TcpServer、TcpConnection、TcpClient等主要成员
在上节介绍的EventLoop基础上,就可以正式开发网络库需要的面向外部的接口。网络库主要包括TcpServer,TcpConnection,Acceptor,Connector,TcpClient。前三者用于服务端,后两者用于客户端。此外还有一个用于封装socketapi的Socket类一、服务端成员:TcpServer是服务器的基础。一个TcpServer包含一个主loop、一个线程池和一个A
宣小K
·
2020-08-19 09:15
linux后台开发
多线程服务器编程之
muduo
中base库与net库详细注释
muduo
学习寒假写的,这个是github链接,之前一直写的比较乱,今天终于抽出时间整理了一下。
Randy__Lambert
·
2020-08-19 05:08
Unix网络编程相关
C++相关
muduo
安装
muduo
安装安装前的准备编译安装安装前的准备由于组里的服务器是多人共用,为了排除宿主机环境对
muduo
的影响以及root权限的获取,选择在docker进行
muduo
的安装。
hl4080
·
2020-08-18 18:16
工具
后端开发
docker
linux
muduo
::StringPiece
muduo
::StringPiece为什么要有这个StringPiece类?C++里面有string和char*,如果你用conststring&s做函数形参,可以同时兼容两种字符串。
X-Programer
·
2020-08-18 15:03
C++
muduo
: StringPiece
http://www.zhihu.com/question/34499426/answer/58891014为什么要有这个类?C++里面有string和char*,如果你用conststring&s做函数形参,可以同时兼容两种字符串。但当你传入一个很长的char*时,会生成一个较大的string对象,开销比较大。如果你的目的仅仅是读取字符串的值,用这个StringPiece的话,仅仅是4+一个指针
春泥面包
·
2020-08-18 14:01
muduo
C++ 一个字符串的代理类(String View)
在学习
muduo
/base源码的时候看到一个StringPiece类,是个stringview,记录下来。
大黄鸭xD
·
2020-08-18 14:28
c++
【
muduo
】base库之 Thread
一、基础知识POSIX线程(英语:POSIXThreads,常被缩写为Pthreads)是POSIX的线程标准,定义了创建和操纵线程的一套API。实现POSIX线程标准的库常被称作Pthreads,一般用于Unix-likePOSIX系统,如Linux、Solaris。它以pthread.h头文件和一个线程库实现。PthreadsAPI中大致共有100个函数调用,全都以"pthread_"开头。p
潇湘夜雨~
·
2020-08-16 20:32
muduo源码剖析
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他