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
网络库源码分析] (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源码分析
muduo
源码分析之EventLoop
Eventloop事件循环:反应器(reactor):负责IO和定时器事件的分派。Reator总结性:(Eventloop,Poller,Channel,Timer)一个事件循环对应一个IO线程,IO线程执行EventLoop事件主循环,该主循环loop调用IO复用器poller监听事件集合,并将就绪事件通过事件分发器Channel执行相应的事件回调。1.ClassChannel:事件分发器,主要
Cassie_Yan
·
2017-07-21 16:53
muduo源码分析
Muduo
网络库学习知识点总结
static_cast(expression)该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。进行上行转换(把派生类的指针或引用转换成基类表示)是安全的;进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型
chudongfang2015
·
2017-07-20 11:37
Muduo网络库
muduo
网络库学习笔记(15):关于使用stdio和iostream的讨论
但是,在真实的项目中很少用到iostream(
muduo
网络库也不例外),本篇就对二者的优、缺点进行一个小结(主要考虑x86Linux平台,不考虑跨平台的可移植性,但是要考虑32-bit和
Leeds1993
·
2017-05-28 23:00
关于
muduo
你应该知道的基本理论
最近在看
muduo
,其中有些东西相对来说还是有些生涩。
我要吃面包
·
2017-05-13 22:58
Muduo
之Channel源码解析
Muduo
之Channel源码解析前面我们分析了Acceptor处理连接请求,之后创建TcpConnection对象分发给合适的EventLoop,而TcpConnection里面是包含Channel,
hejiajie1989
·
2017-05-08 12:01
网络编程
Muduo学习笔记
muduo
:: base/ThreadPool.h 分析
ThreadPool.hclassThreadPool{/*keymember*/private:/*conditionvariables*/ConditionnotEmpty_;ConditionnotFull_;/*threadpool*/boost::ptr_vectorthreads_;/*taskpool*/std::dequequeue_;/*keymemberfunction*/pu
shiyang6017
·
2017-05-05 00:00
线程池
Muduo
之Acceptor源码分析笔记
Muduo
之Acceptor源码解析前面我们大概介绍了
Muduo
网络库的整体架构以及Reactor模式的一般架构,从这里就开始分析
Muduo
网络库中用到的一些类。
hejiajie1989
·
2017-05-04 22:01
linux编程
网络编程
Muduo学习笔记
muduo
源码分析--线程池的实现
muduo
线程池主要有3个类的实现:EventLoop,EventLoopThreadPool,EventLoopThread,和Thread.1.Thread为对一个线程的封装:classThread
扎扎实实写代码
·
2017-04-25 10:43
muduo源码分析
Buffer数据结构
muduo
中的Buffer为封装了的vector。vector为一块连续空间,且其本身具有自动增长的性质,它的迭代器为原始指针,使用起来较为方便。
qq_23542345
·
2017-03-20 17:32
muduo-c++日记
muduo
源码分析之事件处理器-Channel
前面两篇对Acceptor和TcpConnection的分析中,我们知道他们最终都是通过Channel和Eventpool简历连接,而且真正的事件处理函数也都是封装在Channel类中的。所以这里我把Channel看成事件处理器。 除了事件处理函数之外,Channel也是必须将可能产生事件的文件描述符封装在其中的。这里的文件描述符可以是filedescriptor,可以是socket,还可以
gswen
·
2017-02-24 11:54
服务器端编程
muduo源码分析
2016年,你读过的最好的IT技术书有哪几本?
def程序员原文https://www.zhihu.com/question/54350343陈硕等54人赞同了该回答1知乎陈硕大牛的服务器多线程编程
muduo
输的好不好可能更多的在于适合不适合尤其是技术书籍如果你已经具有
stecdeng
·
2017-02-14 12:08
C/C++语言
muduo
库的源代码分析2--简化方案
之前已经简单分析了
Muduo
库的软件架构:http://blog.csdn.net/adkada1/article/details/54342275接下来准备对
Muduo
库进行部分简化。
黑板报
·
2017-02-12 00:59
C++
Linux系统
muduo
库的源代码分析1--整体架构
最近,学习了陈硕大侠的《Linux多线程服务端编程:使用
muduo
C++网络库》很受启发。
黑板报
·
2017-01-12 22:50
C++
Linux系统
muduo
的http库剖析
本文地址:(LYanger的博客:http://blog.csdn.net/freeelinux/article/details/53643802)一:http协议首先看一下httprequest:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:GET、POST、HEAD、PUT、DELETE等
FreeeLinux
·
2016-12-14 19:44
Muduo源码剖析
muduo源码剖析
muduo
库的Acceptor类剖析
一:主要功能>>>Acceptor用于accept(2)接受TCP连接。>>>Acceptor的数据成员包括Socket、Channel。>>>Acceptor的socket是listeningsocket(即serversocket)。>>>Channel用于观察此socket的readable事件,并Acceptor::handleRead(),后者调用accept(2)来接受连接,并回调用户
FreeeLinux
·
2016-12-10 11:45
Muduo源码剖析
muduo源码剖析
muduo
库的EventLoopThread类剖析
3.
muduo
并发模型oneloopperthread+threadpool4.为了方便使用,就直接定义了一个I/O线程的类,就是EventLoopThread类,该类实际上就是对I/O线程的封装。
FreeeLinux
·
2016-12-08 21:17
Muduo源码剖析
muduo源码剖析
muduo
库的EventLoop类剖析
本文地址:http://blog.csdn.net/freeelinux/article/details/53510541一:采用的线程通信机制首先来看一下一个进程(线程)如何通知另一个个等待中的(线程),有三种方法:1.pipe,使用fd[0]为读端,fd[1]为写端,半双工。等待线程关注fd[0]的可读事件。2.socketpair,也有一对文件描述符,可用于双向通信,全双工。3.eventf
FreeeLinux
·
2016-12-08 01:53
Muduo源码剖析
muduo源码剖析
muduo
库的PollPoller类剖析
muduo
库中唯一使用面向对象的地方就在Poller,它有两个派生类,分别是PollPoller和EPollPoller。可以实现两种I/O多路复用机制。
FreeeLinux
·
2016-12-04 22:48
Muduo源码剖析
muduo源码剖析
muduo
的Channel类剖析
>它是
muduo
库负责注册读写事件的类,并保存了fd读写事件发生时调用的回调函数,如果poll/epoll有读写事件发生则将这些事件添加到对应的通道中。
FreeeLinux
·
2016-12-04 22:33
Muduo源码剖析
muduo源码剖析
muduo
库的LogFile日志文件类剖析
之前写了
muduo
的Logger类的分析,今天来看一下LogFile类及其相关的类分析,之前的Logger是控制日志怎样写,怎样用,怎样实现,而今天的LogFile则是用来控制日志怎样和文件打交道。
FreeeLinux
·
2016-12-04 14:04
Muduo源码剖析
muduo源码剖析
muduo
库的Logger及附属类剖析
我们先来看一下logger工作的流程:它的宏是这样定义的(举出一例):#defineLOG_INFOif(
muduo
::Logger::logLevel()impl-->LogStream-->operatorg_output
FreeeLinux
·
2016-12-03 01:26
Muduo源码剖析
muduo源码剖析
muduo
库的Singleton类剖析
如题,分析
muduo
库线程安全的单例模式类。
FreeeLinux
·
2016-12-02 08:17
Muduo源码剖析
muduo源码剖析
muduo
库的Timestamp类剖析
分析之前我们先来看,Timestamp中用了一个BOOST_STATIC_ASSERT宏,这是编译时断言,而我们平时用的assert是运行时断言。示例:#include#includeclassTimestamp{private:int64_tmicroSecondsSinceEpoch_;};BOOST_STATIC_ASSERT(sizeof(Timestamp)==sizeof(int64_
FreeeLinux
·
2016-12-01 03:37
Muduo源码剖析
muduo源码剖析
6-
muduo
网络库简介
Pleaseindicatethesource:http://blog.csdn.net/gaoxiangnumber1Welcometomygithub:https://github.com/gaoxiangnumber16.4使用教程
muduo
gaoxiangnumber1
·
2016-11-09 16:00
github
函数
网络
网络编程
库
一起来写web server 08 -- 多线程+非阻塞IO+epoll
生产者消费者队列.生产者消费者队列生产者消费者问题是操作系统中一个很经典的同步互斥问题,已经有了很不错的解决方案,将它的解决方案拓展一下,就可以用于我们的实践啦.我自己写了一个生产者消费者的队列,然后发现
muduo
lishuhuakai
·
2016-11-04 10:00
Web
server
一起来写web server 05 -- 多线程进阶版本
这个版本的webserver比第4版稍微做了一点改进,那就是由主线程统一接收连接,然后连接的处理由子线程来完成.因此,这里就引入了条件变量以及同步互斥的问题.同步机制
muduo
库中有一个关于同步机制的封装
lishuhuakai
·
2016-11-04 01:00
Web
server
muduo
库的ThreadPool剖析
muduo
库的线程数目属于启动时配置,当线程池启动时,线程
FreeeLinux
·
2016-10-26 20:25
Muduo源码剖析
muduo源码剖析
muduo
的Mutex类剖析
muduo
的mutex_lock_guard()就是利用C++的RAII机制,完成互斥锁锁的自动加锁,解锁操作,解放双手。我们只需要用一堆大括号的控制互斥锁的范围就可以了。
FreeeLinux
·
2016-10-25 00:37
Muduo源码剖析
muduo源码剖析
muduo
库Thread类剖析
muduo
库中的Thread类集合了所有线程的操作,其中还运用了线程安全的观察者模式。运用shared_ptr和weak_ptr做到了生命周期的管理。
FreeeLinux
·
2016-10-24 22:13
Muduo源码剖析
muduo源码剖析
muduo
网络框架分析
muduo
网络框架分析概要
muduo
是一个纯异步、多线程、多路复用网络框架,主线程负责监听网络连接事件,子线程负责处理已建立的连接的网络读写事件。采用eventfd实现父、子线程之间的通信。
禾田八久
·
2016-09-01 22:59
学习muduo服务器
muduo
: TcpConnection's Write Buffer
muduo
作者将该事件称为是半个事件是有道理的,因为这里的发送是指将数据放到TCP协议栈的发送缓冲区,由TCP协议栈负责将数据发送到对端,因此称为半个事件。
春泥面包
·
2016-08-12 11:58
muduo
muduo
: Reactor(EventLoop Poller Channel)
Linux多线程服务器编程6.4.1TCP网络编程最本质的是处理三个半事件:1.连接的建立,包括serveraccept新连接,客户端成功connect.TCP连接一旦建立,server和client的地位是相等的,可以各自收发数据.2.连接的断开,包括主动断开(close,shutdown)和被动断开(read返回0)3.消息到达,文件描述符可读.(对该事件的处理方式决定了网络编程的风格,阻塞还
春泥面包
·
2016-08-10 11:38
muduo
muduo
: Thread-safe Singleton
使用pthread_once#include#includetemplateclassSingleton:privateboost::noncopyable{public:staticT&instance(){pthread_once(&ponce_,&Singleton::init);return*obj_;}private:Singleton();~Singleton();staticvoid
春泥面包
·
2016-07-28 11:39
muduo
muduo
: ThreadPool
https://github.com/chenshuo/
muduo
/blob/master/
muduo
/base/ThreadPool.hhttps://github.com/chenshuo/
muduo
春泥面包
·
2016-07-26 16:50
muduo
muduo
: Condition
https://github.com/chenshuo/
muduo
/blob/master/
muduo
/base/Condition.h前面分析了互斥锁MutexLock的实现,这里分析一下条件变量Condition
春泥面包
·
2016-07-25 14:23
muduo
muduo
: MutexLock
介绍https://github.com/chenshuo/
muduo
/blob/master/
muduo
/base/Mutex.hMutexLock是对互斥锁的封装,使用时用作一个类的成员变量,保护另一个常用被互斥访问
春泥面包
·
2016-07-25 14:47
muduo
muduo
: MutexLock
介绍https://github.com/chenshuo/
muduo
/blob/master/
muduo
/base/Mutex.hMutexLock是对互斥锁的封装,使用时用作一个类的成员变量,保护另一个常用被互斥访问
chj90220
·
2016-07-25 14:00
boost::function与回调函数
boost::function与回调函数这是我在学习陈硕
muduo
网络库过程中记录的关于C++的知识碎片,对
muduo
感兴趣的同学可以加入QQ群365972535一起讨论:利用boost::function
陈帅陪马大大为软件献青春
·
2016-07-24 23:54
c++
boost
muduo
: Thread
预备知识__thread(Thread-LocalStorage)https://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Local.htmlThread-localstorage(TLS)isamechanismbywhichvariablesareallocatedsuchthatthereisoneinstanceofthevariablepe
春泥面包
·
2016-07-22 16:29
muduo
muduo
: Thread
预备知识__thread(Thread-LocalStorage)https://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Local.htmlThread-localstorage(TLS)isamechanismbywhichvariablesareallocatedsuchthatthereisoneinstanceofthevariablepe
chj90220
·
2016-07-22 16:00
muduo
: StringPiece
http://www.zhihu.com/question/34499426/answer/58891014为什么要有这个类?C++里面有string和char*,如果你用conststring&s做函数形参,可以同时兼容两种字符串。但当你传入一个很长的char*时,会生成一个较大的string对象,开销比较大。如果你的目的仅仅是读取字符串的值,用这个StringPiece的话,仅仅是4+一个指针
春泥面包
·
2016-07-20 16:05
muduo
发布一个基于 Reactor 模式的 C++ 网络库
发布一个基于Reactor模式的C++网络库陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice2010Aug30本文主要介绍
muduo
网络库的使用。
Lina_ACM
·
2016-06-30 19:00
[置顶] 使用
Muduo
完成数独和八数码问题求解服务器
在剖析完
Muduo
网络库源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在
muduo
网络库中多次提到并有示例。
NK_test
·
2016-05-28 21:00
服务器
网络编程
数独
八数码
muduo
[置顶] 使用
Muduo
完成数独和八数码问题求解服务器
在剖析完
Muduo
网络库源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在
muduo
网络库中多次提到并有示例。
NK_test
·
2016-05-28 21:00
服务器
网络编程
数独
八数码
muduo
Muduo
网络库源码分析(六)TcpConnection 的生存期管理
TcpConnection是使用shared_ptr来管理的类,因为它的生命周期模糊。TcpConnection表示已经建立或正在建立的连接,建立连接后,用户只需要在上层类如TcpServer中设置连接到来和消息到来的处理函数,继而回调TcpConnection中的 setConnectionCallback和setMessageCallback函数,实现对事件的处理。用户需要关心的事件是有限的,
NK_test
·
2016-04-22 15:00
源码
linux
网络
muduo
tcpConnection
上一页
15
16
17
18
19
20
21
22
下一页
按字母分类:
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
其他