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
(13)
muduo
_base库源码分析:Thread类实现
文章目录1.线程标识符2.Thread类图3.Thread类相关代码学习4.相关测试5.多线程多进程的死锁案例1.线程标识符Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(7)
muduo
介绍
文章目录1.
muduo
的介绍的总结2.
muduo
的安装的总结1.
muduo
的介绍的总结不支持UDP,只支持TCP。
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(12)
muduo
_base库源码分析:Exception类实现
文章目录1.Exception类实现2.代码测试1.Exception类实现类图12\j
muduo
\
muduo
\base\Exception.cc//UseofthissourcecodeisgovernedbyaBSD-stylelicense
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
(第6章)
muduo
网络库
文章目录1.
muduo
2.线程模型3.TCP网络编程本质1.
muduo
muduo
是基于Reactor模式的网络库,核心是:事件循环EventLoop,用于相应计时器和IO事件
muduo
采用基于对象object-based
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
Muduo
日志系统
本文是笔者通过学习
Muduo
多线程网络程序开发库日志模块所做出的总结,文中大量引用了陈硕所著的《Linux多线程服务端编程:使用
muduo
C++网络库》以及luotuo44《
muduo
日志库学习》博客中的内容
要回杭州的李同学
·
2020-08-14 15:54
发布一个基于 Reactor 模式的 C++ 网络库
发布一个基于Reactor模式的C++网络库陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice2010Aug30本文主要介绍
muduo
网络库的使用。
陈硕
·
2020-08-14 15:48
muduo
c++
多线程
muduo
库学习笔记七:base库之Mutex
Mutex互斥量:
muduo
库中的封装为MutexLock类与MutexLockGuard类。
麻子来了
·
2020-08-14 15:46
moduo源码阅读笔记
整理下
muduo
主要类的实现思路
文章目录TcpConnectionBufferLogThreadPool定时器限制并发连接TcpConnection唯一一个用智能指针控制声明周期的类,找了好久才找到什么时候结束。在TcpServer里面会有保存Conn的一个智能指针,所以引用计数一直为1。当你收到对端关闭的消息的时候,因为是在handleEvent()里面,不能直接析构,所以TcpConnection::handleClose(
Immortal_s
·
2020-08-14 15:07
探索muduo
学习
muduo
(win平台的实现,未完成)
代码在github:https://github.com/pei2017/
muduo
_exercise/tree/master/
muduo
_five/net问题1.
p2016
·
2020-08-14 15:01
muduo网络库
Socket
muduo
_net库源码分析(26-1
Channel是selectableIOchannel,负责注册与响应IO事件,它不拥有filedescriptor。Channel是Acceptor、Connector、EventLoop、TimerQueue、TcpConnection的成员,生命期由后者控制。时序图EventLoop头文件eventloop.h//Copyright2010,ShuoChen.Allrightsreserve
laohan_
·
2020-08-14 15:44
Muduo
Net
Library
【
muduo
】base篇---ThreadLocal
一、线程特定数据和线程本地存储 线程本地数据(局部数据/私有数据/线程中特有的线程存储),和__thread类似,虽然__thread简单,但容易不正确使用。 线程存储:每个线程都有各自的线程存储,直到线程被销毁(或者主动调用函数销毁)。线程存储既不是全局变量(不同的线程有各自的线程存储,而且也不能相互访问)、也不是static变量(线程函数中的static变量可以被多个线程修改)也不是局部变
lx青萍之末
·
2020-08-14 15:26
#
Muduo网络库
muduo
网络库——实现Boost.Asio聊天服务器:完整代码+注释
比如两条消息“hello”和“chenshuo":打包的代码把stringmessage打包为
muduo
::net::Buffer,并通过conn发送。
amoscykl
·
2020-08-14 15:44
moduo网络库
muduo源码分析
muduo
网络库——五个简单编程示例
五个简单TCP示例:echo,discard,chargen,daytime,timeecho:回显服务,把收到的数据发回客户端。discard:丢弃所有收到的数据。chargen:服务端accept连接之后,不停地发送测试数据。daytime:服务端accept连接之后,以字符串形式发送当前时间,然后主动断开连接。time:服务端accept连接之后,以二进制形式发送当前事件,然后主动断开连接;
amoscykl
·
2020-08-14 15:13
moduo网络库
muduo源码分析
muduo
-- base分析
1.Atomic.h//原子操作接口封装,C++11已经实现atomic相关接口,更简洁些,推荐使用C++11内实现std::atomiccur_max_sqlId_;参考:https://zh.cppreference.com/w/cpp/atomic/atomic2.CountDownLatch.h//作类似于起跑线机制,值得学习一下//latchdown之后然后调用wait.等待最后一个线程
YongApple
·
2020-08-14 15:13
Muduo
网络库源码剖析 | 事件循环线程EventLoopThread和EventLoopThreadPool类
文章目录EventLoopThread类剖析(事件循环线程类)EventLoopThreadPool剖析(事件驱动循环线程池类)EventLoopThread类剖析(事件循环线程类)
Muduo
的并发模型为
ZY-JIMMY
·
2020-08-14 15:40
C++程序设计
Muduo
网络库源码分析(四)EventLoopThread和EventLoopThreadPool的封装
muduo
的并发模型为oneloopperthread+threadpool。
NK_test
·
2020-08-14 15:31
Linux基础及编程
Muduo源码分析
muduo
网络库源码学习————线程安全
////Author:ShuoChen(chenshuoatchenshuodotcom)//线程安全#ifndef
MUDUO
_BASE_SINGLETO
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo
网络库源码学习————条件变量
muduo
里的CountDownLatch类实际上是对条件变量condition进行的封装,既可以用于所有子线程等待主线程发起“起跑”,也可以用于主线程等待子线程初始化完毕才开始工作。
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo
网络库源码学习————日志滚动
muduo
库里面的实现日志滚动有两种条件,一种是日志文件大小达到预设值,另一种是时间到达超过当天。
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo
网络库源码学习————线程类
muduo
库里面的线程类是使用基于对象的编程思想,源码目录为
muduo
/base,如下所示:线程类头文件://UseofthissourcecodeisgovernedbyaBSD-stylelicense
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
20
muduo
_base库源码分析(十一)
1.日志作用(1)开发过程中:调试错误,更好的理解程序(2)运行过程中:诊断系统故障并处理,记录系统运行状态2.日志级别(1)TRACE指出比DEBUG粒度更细的一些信息事件(开发过程中使用)(2)DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的。(开发过程中使用)(3)INFO表明消息在粗粒度级别上突出强调应用程序的运行过程。(4)WARN系统能正常运行,但可能会出现潜在错误的情形。(5
INGNIGHT
·
2020-08-14 15:24
C++11
muduo大并发服务器
13
muduo
_base库源码分析(四)
1.线程标识符(1)Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一个进程(LWP),只是该进程与主进程(启动线程的进程)共享一些资源
INGNIGHT
·
2020-08-14 15:24
muduo大并发服务器
muduo
源码分析——整体架构
最近在学习网络编程,从flamingo这个服务器开始,当然这个服务器也是基于
muduo
开发的,所以也算是在研究
muduo
吧。
不安的前方
·
2020-08-14 15:14
c++网络编程
muduo
网络编程
高并发服务器架构笔记(4)——
muduo
_net 源码分析
TCP网络编程最本质的是处理3.5个事件1.连接建立:服务端accept(被动)接受连接,客户端connect(主动)发起连接。2.连接断开:主动断开(close、shutdown),被动断开(read返回0)3处理消息到达事件(核心):当网络库事件循环中的可读事件触发时,将数据从内核缓冲区移动到应用缓冲区中。调用OnMessage()函数,根据协议判断数据包是否一个完整的数据包(不是半包)。如果
ize
·
2020-08-14 15:35
UNP
服务端开发
c++
muduo
的研究目录
目录(1)大并发服务器架构介绍(7)
muduo
介绍,参考:链接(8)面向对象编程(9)基于对象的编程风格(10)
muduo
_base库源码分析:Timestamp.cc和Timestamp.h(11)
muduo
_base
简单生活,简单爱
·
2020-08-14 15:04
开源代码学习
高并发服务器架构笔记(3)——
muduo
_base 源码分析
MutexLockMutexLockMutex:pthread_mutex_tholder:pid_t(当前拥有该锁的线程tid)~~~~~~~~~~~~~>MutexLock()>~MutexLock()idLockedBythisThread():bool判断是否当前线程拥有该锁assertLocked():void(断言当前线程拥有该锁)lock():voidunlock():voidget
ize
·
2020-08-14 15:03
c++
服务端开发
Muduo
(C++11版本) 源码剖析(二)———EventLoopThread+EventLoopThreadPoll
EventLoopThread+EventLoopThreadPoll这两个类比较简单,放在一起说。EventLoopThreadPoll类EventLoop线程的线程池,该类负责对线程创建,结束,可以round-robin轮询或者哈希的方式获取线程,当然也可以扩展其他负载均衡的方法。在TcpServer类中有该实例对象,生命周期和TcpServer绑定。类成员变量:private:EventLo
苏州-青蛙
·
2020-08-14 15:57
服务器
c++
Muduo
(C++11版本) 源码剖析(一)———总体架构
前言:目前工作虽然是C++/Qt客户端方向,但是研究了一段时间c++高性能服务器的一些架构设计,正好学习了一款flamingo这一款开源即时通讯软件,里面的网络层是用c++11改写的原来boost版的
muduo
苏州-青蛙
·
2020-08-14 14:43
c++
服务器
perfbook读书笔记 chapter 2
之前看过ShuoChen的《Linux多线程服务端编程》,越看写的越牛逼,作者从多核时代分布式并发的角度去讲自己一个网络库
muduo
的实现,以TCP作为IPC的主要方式。
Shim_ZoMoe
·
2020-08-14 08:06
perfbook读书笔记
muduo
源码分析--详解
muduo
多线程模型
6.6详解
muduo
多线程模型方案0:accept+read/write一次服务一个客户这个不
鱼思故渊
·
2020-08-11 01:05
muduo源码分析
muduo源码分析
timerfd与定时器
该篇文章不是讨论如何使用timerfd去实现定时器,而是说明在某一情况下,不建议使用timerfd去实现,而是采取其他方法去实现在逛知乎看到这么一个问题,“
muduo
库在实际项目中使用的人多吗?”
Rookie_2020
·
2020-08-10 18:42
C++
夭折的会员开通系统
系统用了陈硕的
muduo
网络库,被我们这边同事改进,增加了UDP支持以适配公司的内部协议。整个系统有3个模块,接收用户付账信息模块、订单处理模块和用户会员信息存储模块。
侑子的小伙伴
·
2020-08-09 22:43
c
muduo
异步日志——core dump后查找还未来得及写出的日志
目录前言生成core文件gdb调试Core文件前言通过异步日志的实现可以知道,日志消息并不是生成后立刻就会写出,而是先存放在前端缓冲区currentBuffer或者前端缓冲区队列buffers中,每过一段时间才会将缓冲区中的日志消息写到日志文件中。那么这就会有问题了:如果程序在中途coredump了,那么在缓冲区中还未来得及写出的日志消息该如何找回呢?coredump的原因有多种,现在来构造这样的
HerofH_
·
2020-08-09 10:46
muduo
Linux
muduo
源码学习(2):异步日志——异步日志的实现
目录什么是异步日志异步日志的实现前端与后端前端与后端的交互资源回收后端与日志文件滚动日志自动flush缓冲区开启异步日志功能总结在前文中分析了日志消息的存储和输出,不过并没有涉及到异步日志,下面就来分析一下异步日志是如何实现的。什么是异步日志在默认的情况下,日志消息都是直接打印到终端屏幕上,但是实际应用中,日志消息都应该写到本地文件,方便记录以及查询。最简单的方式就是每产生一条日志消息,都将其写到
HerofH_
·
2020-08-09 10:46
muduo
muduo
源码学习(1):异步日志——日志消息的存储及输出
目录前言日志存储的实现日志输出的实现总结前言
muduo
中的日志,是诊断日志。用于将代码运行时的重要信息进行保存,方便故障诊断和追踪。
HerofH_
·
2020-08-09 10:15
muduo
muduo
types.h
转自:https://blog.csdn.net/xiaoc_fantasy/article/details/79570788https://blog.csdn.net/weixin_40021744/article/details/888029691、向上转换templateinlineToimplicit_cast(Fromconst&f){returnf;}up_cast时应该使用impli
zgrztzy
·
2020-08-08 01:43
muduo服务器
重写
muduo
库
目录概述Reactor模型整体框架组件详解logger组件channel组件Poller&EpollPoller组件Poller组件EpollPoller组件EventLoop组件Thread&EventLoopThread&EventLoopThreadPoolThread组件EventLoopThread组件EventLoopThreadPool组件Socket&Acceptor组件Socke
我爱吃香锅
·
2020-08-07 20:43
epoll
多线程
网络
c++
C++线程池实现
最近读了
muduo
的源码,看了一下其中线程池的是实现。其中互斥量、条件变量都是库里面自己封装的,正好现在C++标准库里面有对应的类,所以就改造了一下,补充了部分注释。同时总结了一下条件变量和锁的使用。
虽不易
·
2020-08-07 18:42
muduo
net库学习笔记2——
muduo
网络库相关类图的关系、EventLoop、Channel、 Poller
EventLoop的简化封装(有在上篇文章中出现过但是连贯一下就还是搬过来…,看完类图关系就可以分析完善的代码了可以直接跳转到正文类图关系.h文件namespace
muduo
{namespacenet{
听说西佳佳难得很
·
2020-08-04 17:14
muduo源码
muduo
net库学习笔记3——定时器的实现
在常见的定时函数中
muduo
选择timerfd实现定时器,原因如下:sleep/alarm/usleep在实现时有可能使用了SIGALRM信号,多线程程序中尽量避免使用信号,因为处理起来比较麻烦(信号通知进程
听说西佳佳难得很
·
2020-08-04 17:14
muduo源码
muduo
base库学习笔记 9——线程特定数据、线程本地当地类封装
线程特定数据了解线程特定数据⭐在单线程程序中,经常要用到“全局变量”以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,全局变量也是所有线程所共有的。但有时应用程序设计中有必要提供线程私有的全局变量,即仅在某个线程中有效,但却可以跨多个函数访问POSIX线程库通过维护一定的数据结构来解决这个问题,这个数据成为Thread-specificData或TSD,线程特定数据也称为线程本地存储
听说西佳佳难得很
·
2020-08-04 17:13
muduo源码
muduo
base
库
muduo
_base库学习笔记7——无界队列、有界队列及线程池的实现
BlockingQueue和BoundedBlockingQueue实质就是一个生产者消费者的模型一、BlockingQueue只用了一个条件变量notEmpty_,不需要notFull_,因为无界嘛不用考虑满的情况,条件变量需要跟一个互斥量一起使用mutex_,队列直接用STL中的deque_put()生产;生产中用MutexLockGuard调用Mutex_进行保护,生产了就通知消费者线程ta
听说西佳佳难得很
·
2020-08-04 17:13
muduo源码
muduo
base库学习笔记 10——日志类封装
日志的作用:1,开发过程中,有助于调试错误,能更好地理解程序2,运行过程中,日志能帮助我们诊断系统故障并处理、记录系统运行状态这代码就优点长了喔日志级别TRACE指出比DEBUG粒度更细的一些信息时间(开发过程中使用)DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的(开发过程中使用INFO表明消息在粗粒度级别上突出强调应用程序的运行过程WARN系统能正常运行,但可能会出现潜在错误的情形ER
听说西佳佳难得很
·
2020-08-04 17:13
muduo源码
面向对象编程风格 & 基于对象编程(boost::bind/function)
“
Muduo
是一个现代的C++网络库。现代和古代的API区别在于两方面。一个是事件回调,另外一个是资源管理。一般的网络库设计API的方式是定义一个接口(抽象基类),包含几种网络事件对应的处理函数。
NK_test
·
2020-08-04 12:46
Linux基础及编程
Programming
int
the
Linux
environment
muduo
库源码分析之 Atomic.h
首先在分析这个类之前了解一下原子操作的概念,原子操作(atomicoperation)指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。任何要求多于一个函数调用的操作都不是原子操作,因为在两个函数调用之间,内核可能会临时挂起线程,执行其他的操作,当内核切换回当前线程时,之前的数据可能别修改,所以不能保证是原子操作。在C
瑜胜
·
2020-08-03 17:34
muduo源码分析
C++
Linux
muduo
muduo
源码分析之Buffer设计
好久没有看
muduo
了,最近看Nginx看的有点醉,换换口味。
NearXDU
·
2020-08-03 09:28
muduo和多线程学习
C++多线程
C++网络通信库性能大比拼
先上结论,大家都忙:)候选者:cppcms,boostasio,libevent,
muduo
和nginx,nginx不是库,这里做测试使用它作为基准,毕竟很多人心里,它是不可挑
csfreebird
·
2020-08-01 00:49
#
c++
network
muduo
网络库源码复现笔记(二十五):缓冲区Buffer类
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-07-30 21:25
muduo
网络
后端
linux
单例模式,懒汉饿汉,线程安全,double checked locking的问题
静态局部变量实现尾语本文目的 之前在看《Linux多线程服务端编程-使用
muduo
C++网络库》,看到2.5线程安全的Singleton实现时,里面对单例模式的线程安全有这么一句话,人们一直认为doublecheckedlocking
LupinLeo
·
2020-07-30 09:35
muduo
muduo
的TCPserver端初始化步骤,以EchoServer_unittest.cc为例
环境变量里加export
MUDUO
_LOG_TRACE=1使其打印出最多的日志看这个库需要boost基础,这个专栏地址参考价值比较大EchoServer_unittest.cc代码如下EventLooploop
chinaye1
·
2020-07-30 08:37
开源软件解读之muduo库
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
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
其他