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
为什么多线程读写 shared_ptr 要加锁? --shared_ptr的线程安全性
在《Linux多线程服务端编程:使用
muduo
C++网络库》第1.9节“再论shared_ptr的线程安全”中写道:(shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为shared_ptr
amoscykl
·
2023-04-17 16:38
C/C++
网络编程
shared_ptr
线程安全
为什么多线程读写shared_ptr需要加锁
giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux多线程服务端编程:使用
muduo
C
FreeeLinux
·
2023-04-17 16:07
C/C++
shared_ptr
为什么多线程读写 shared_ptr 要加锁?
陈硕(giantchen_AT_gmail_DOT_com)2012-01-28我在《Linux多线程服务端编程:使用
muduo
C++网络库》第1.9节“再论shared_ptr的线程安全”中写道:(shared_ptr
DLANDML
·
2023-04-17 16:37
C++
数据结构
c++
《Linux多线程服务端编程》笔记——多线程服务器的适用场合和常用编程模型
最近在进修
muduo
,于是配套陈硕(大神老师,直接开头指出,之后就不写引用参考了,有兴趣的直接搜就可以了)的书一个起来学习,真的是不怕知识多,就怕知识乱。
闫++
·
2023-04-16 03:56
网络
多线程
服务端编程
Muduo
库源码剖析(一)——Channel
Muduo
库源码剖析(一)——Channel说明本源码剖析是在
muduo
基础上,保留关键部分进行改写分析。
FuzhouJiang
·
2023-04-15 18:51
Muduo
网络编程
C/C++
c++
服务器
Muduo
源码剖析--整体架构
Muduo
整体架构1.编译和安装git:GitHub-chenshuo/
muduo
:Event-drivennetworklibraryformulti-threadedLinuxserverinC++
birate_小小人生
·
2023-04-13 02:57
muduo剖析
架构
linux
tcp
muduo
网络库源码分析——整体架构
muduo
的源代码中,虽然不考虑可移植性,但还是划分了很多小的类(Channel、Socket、TcpConnection、Acceptor,不知道是不是参考了java中的概念),类之间大量通过boost
sunwake999
·
2023-04-12 00:15
c++11
muduo
muduo
源码剖析——ThreadPool线程池的实现
1线程池原理
muduo
源码中线程池的实现是基于生产者/消费者模式的,可参考基于生产者/消费者模式原理实现无界缓冲区和有界缓冲区。其中缓冲区(即下图中的任务队列)为“环形缓冲区”。
高自强的博客
·
2023-04-12 00:42
muduo
线程池
muduo
源码剖析——以三个切片浅析
muduo
库代码设计的严谨性、高效性与灵活性
0前言陈硕大佬的
muduo
网络库的源码我已经看了好久了,奈何本人实力有限,每每看到其代码设计的精巧之处只能内心称赞,无法用言语表达出来。实在令人汗颜。
高自强的博客
·
2023-04-12 00:42
muduo
多线程
muduo
库源码分析2——QueryServer服务器启动流程
muduo
网络库中,基于google::protobuf数据标准的网络服务器实例,放在example/protobuf/codec中。
杨铮的技术博客
·
2023-04-12 00:40
c/c++开发
linux开发
网络开发
muduo
muduo
库源码分析3——
muduo
事件循环分析
muduo
事件循环分析
muduo
网络库网络I/O模型为非阻塞reactor模式。使用linux的epoll或poll系统调用,轮寻多个socket,然后利用事先注册的事件句柄处理发生事件的套接字。
杨铮的技术博客
·
2023-04-12 00:10
c/c++开发
linux开发
网络开发
muduo
Muduo
源码剖析
1、总体流程1.acceptor进行listen阶段后,往channel中注册可读事件。2.acceptor可读处理中生成TcpConnection指针,通过EventloopThreadPool轮询出其中一个线程的eventloop,并将此TcpConnection的可读、可写等事件注册到自己Channel(eventLoop)中。3.每个EventLoop监听到具体channel的事件后,分析
YanWenCheng_
·
2023-04-12 00:08
muduo
c++
muduo
网络库源码学习————线程本地单例类封装
muduo
库中线程本地单例类封装代码是ThreadLocalSingleton.h如下所示://线程本地单例类封装//UseofthissourcecodeisgovernedbyaBSD-stylelicense
缱绻的西格玛
·
2023-04-12 00:38
muduo库源码学习
线程
网络
库
源码
muduo
网络库源码学习————线程特定数据
muduo
库线程特定数据源码文件为ThreadLocal.h//线程本地存储//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile
缱绻的西格玛
·
2023-04-12 00:07
muduo库源码学习
线程
网络
库
源码
Muduo
库源码剖析(三)——获取线程tid方法
相关知识点__thread__thread修饰表示使用线程局部存储机制(threadlocal机制),即会为修饰的变量在当前线程存储一份copy,别的线程是看不到这个变量的修改__thread是GCC内置的线程局部存储设施,其存储效率可以和全局变量相比;__thread变量在每一个线程中都有一份独立实例,各线程值是互不干扰的。extern在C++中,extern是一个关键字,用于在当前文件以外的地
FuzhouJiang
·
2023-04-12 00:34
网络编程
Muduo
C/C++
c++
服务器
linux
Linux C++ 网络编程(二)
Linux网路编程比较经典的有Redis、
Muduo
、TeamTalk等开源项目。本文将以
Muduo
来介绍网络编程的框架,学习完
Muduo
再去学习其他框架就容易许多了。
奋斗_0268
·
2023-04-11 14:26
c++11编写线程池
写在前面由于最近在学习
muduo
网络库,需要许多的多线程和网络编程的知识。现在正好看到线程池的部分,就想着用C++11来编写一个线程池来加深自己的对线程池的理解。
%s无聊_我很
·
2023-04-09 20:04
c++
开发语言
muduo
网络编程库阅读
正文遵循Reactor模型,封装了EventLoop。有以下特点:利用MutexLockGuard->MutexLock->pthread_mutex_t控制EventLoop::pendingFunctors_的线程安全。回调函数,std::function和std::bind的大量应用。用于回调读/写/错误/关闭等事件。高度抽象。用TcpConnection封装Channel,后者封装了soc
不存在的里皮
·
2023-04-09 10:34
muduo
源码分析之回调模块
这次我们主要来说说
muduo
库中大量使用的回调机制。
shicoder
·
2023-04-08 10:14
Muduo
库源码剖析(八)——TcpServer类
TcpServer类要点TcpServer类的主要作用是,管理整个服务器,做如下的一些操作:管理accept(2)获得的TcpConnectionTcpServer是供用户直接使用的,生命期由用户控制设置mainLoop,并利用mainLoop进行新连接的管理初始化TcpServer对应的Acceptor用于监听新连接到来根据oneloopperthread的设计方案,setThreadNum设置
qq_42120843
·
2023-04-08 00:14
网络编程
Muduo
C/C++
c++
服务器
linux
Muduo
库源码剖析(九)——TcpConnection类
TcpConnection类要点TcpConnection表示的是“一次TCP连接”,它是不可再生的,一旦连接断开,这个TcpConnection对象就没啥用了。它的主要功能就是对成功连接服务器的客户连接connfd的封装。一个TcpConnection唯一对应一个Channel和SocketChannel处理事件的一系列回调就是在TcpConnection类中设置和实现的。TcpConnecti
qq_42120843
·
2023-04-08 00:14
Muduo
网络编程
C/C++
服务器
c++
linux
Muduo
库源码剖析(七)——缓冲区Buffer类
Buffer类要点由于
Muduo
库使用的是非阻塞IO模型,即每次send()不一定全发完,没发完的数据要用一个容器进行接收,所以必须要实现应用层缓冲区.缓冲区中各个指针和区域,下图要牢牢记住:其中prependablebytes
qq_42120843
·
2023-04-08 00:13
Muduo
网络编程
C/C++
c++
服务器
linux
【无标题】
Muduo
库源码剖析(十)——总结
Muduo
网络库的核心代码模块Channel封装fd的对应事件变化情况,和关注事件fd、events、revents、callbacks,两种channel:listenfd-acceptorChannel
qq_42120843
·
2023-04-08 00:58
Muduo
网络编程
C/C++
服务器
linux
c++
Muduo
库编译时提示错误deprecated: Please use ByteSizeLong() instead
错误提示如下解决方法在
muduo
库的CMakeList中添加编译选项-Wno-deprecated-declarations
qq_42120843
·
2023-04-05 01:13
Muduo
muduo
c++
muduo
库使用方法(一)
库安装
Muduo
库和boost库安装参考:Linux平台下
muduo
网络库源码编译安装
Muduo
库简介
muduo
库线程模型采用sub-Reactor模式,采用nonblockio+oneloopperthread
qq_42120843
·
2023-04-05 01:13
Muduo
C/C++
网络编程
服务器
c++
Linux C/C++网络编程实战-陈硕-笔记11-Roundtrip代码分析
代码UDP,twothreadsrecipes/tpc/roundtrip_udp.ccUDPwith
muduo
,singlethread
muduo
/examples/roundtrip/roundtrip_udp.ccTCPwith
muduo
muduo
Anita-Sun
·
2023-04-02 11:36
Linux
linux
网络
c语言
Muduo
源码刨析-完成服务器功能的TcpServer类
目录TcpServer类功能数据成员暴露的接口TcpServer类功能 TcpServer是
muduo
库中创建Tcp服务器的类,可以通过对:TcpServer的msgcallback进行设置,可以完成我们想要的服务器功能
c++终结者
·
2023-04-02 03:16
服务器
网络
muduo
库http源码分析
httprequestHTTP请求包含:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:Get,Post,Head,Put,Delete等协议版本1.0、1.1常用请求头Accept:浏览器可接受的媒体(MIME)类型;Accept-Language:浏览器所希望的语言种类Accept-Enco
houcaihua
·
2023-04-02 01:17
http
网络协议
网络
muduo
网络库示例 (限制并发数和踢掉空闲连接)
限制服务器最大并发连接数(
Muduo
Manual.pdfP108)这个比较简单,在连接里面判断最大数量断开连接。
houcaihua
·
2023-04-02 01:17
网络
服务器
muduo
库net源码分析一(网络编程本质)
TCP网络编程最本质的是处理三个半事件1、连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接。2、连接断开:主动断开(close、shutdown),被动断开(read返回0)。3、消息到达:文件描述符可读。4、消息发送完毕:这算半个。对于低流量的服务,可不必关心这个事件,这里的发送完毕是指数据写入操作系统缓冲区,将由TCP协议栈负责数据的发送与重传,不代表对方已经
houcaihua
·
2023-04-02 01:16
网络
tcp/ip
服务器
muduo
网络库源码分析
muduo
网络库源码分析发布一个基于Reactor模式的C++网络库01主从Reactor网络模型TcpClient客户端代码维护了Connector模块事件分发器主要由EventLoop类实现Eventloop
-特立独行的猪-
·
2023-04-01 23:18
计算机网络
网络
muduo
---C++网络编程库
陈硕
muduo
参考资料
muduo
源码剖析
Muduo
是一个基于Reactor模式的现代C++网络库,它采用非阻塞IO模型,基于时间驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序
Mr.liang呀
·
2023-03-31 20:18
TCP/IP网络编程
Linux高性能服务器
C++基础
c++
网络
架构
一、重写
muduo
网络库之服务器编程及测试
目录一、基于
muduo
网络库开发服务器程序的基本步骤1、组合TcpServer对象2、创建EventLoop事件循环对象的指针3、明确TCPServer构造函数需要的参数,输出ChatServer的构造函数
小鱼的编程之路
·
2023-03-31 11:03
Linux网络编程
重写muduo网络库
服务器
网络
运维
Muduo
网络库核心梳理
Muduo
网络库
Muduo
网络库本身并不复杂,是一个新手入门C++面向对象网络编程的经典实战项目。但是,新手在刚刚上手读代码的时候,非常容易陷入代码的汪洋大海,迷失方向。
wbvalid
·
2023-03-31 10:16
C++
c++
网络
编程语言
linux
muduo
库介绍
muduo
库是一个多线程服务器开发库
muduo
作者陈硕,现在在美国加州硅谷某互联网大公司工作,从事大规模分布式的可靠系统工程。
houcaihua
·
2023-03-31 10:10
服务器
运维
muduo
网络库示例(聊天服务器)
聊天服务器(
Muduo
Manual.pdfP66)examples/asio/chat/server.cc单线程examples/asio/chat/server_threaded.cc,多线程TcpServer
houcaihua
·
2023-03-31 10:10
服务器
网络
后端
c++
muduo
网络库源码详解(2) —— 以EchoServer为例子,从TcpServer的初始化说起
muduo
网络库源码详解(2)以EchoServer为例子,从TcpServer的初始化说起,分析ConnectionCallback回调函数是如何一步步设置到Channel里的主要参考了陈硕的书《Linux
爱好学习的青年人
·
2023-03-31 10:07
muduo
net库源码分析
网络
linux
[剖析
muduo
网络库]1.IO的阻塞和非阻塞、同步和异步
muduo
库作者陈硕老师原话:在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO如果说的是业务层面上的一个逻辑处理是同步还是异步的时候,那么:同步:A操作等待B操作做完事情后
下酒番陪绅士
·
2023-03-31 10:02
muduo网络库
c++
网络
简单模仿下
muduo
网络库的封装
文章目录一、基础socket编程二、抽象与层次2.1InetAddress封装2.2Socket封装2.3Epoll封装2.4Channel封装2.5Acceptor封装2.6Connection封装2.7Threadpool封装2.8Eventloop封装2.9TCPserver封装三、小结一、基础socket编程网络编程的底层离不开socket,其处理流程表示如下:intsockfd=sock
阿杰的小鱼塘
·
2023-03-31 10:11
网络
C++
网络
服务器
c++
线程池
muduo
网络库—分布式系统知识精要
目录1、编译期常量2、定义类型并使用3、分布式网络问题——TCPIncast问题4、分布式网络问题——Fat-tree网络拓扑5、分布式系统和单机系统的区别6、如何做到负载均衡7、分布式系统时间与时间顺序违反直觉8、能随时重启进程作为程序设计目标9、如何重启10、分布式中心跳协议11、有状态服务和无状态服务12、SO_REUSEADDR13、socket的四个地址信息14、分布式系统中的进程标识1
贪睡的蜗牛
·
2023-03-31 10:33
C++11重写muduo网络库
分布式
网络
muduo
网络库使用入门
muduo
网络库介绍
muduo
网络库是陈硕大神开发的基于主从Reactor模式的,事件驱动的高性能网络库。
月本_诚
·
2023-03-31 10:59
#
C++
Linux
计算机网络
网络
服务器
c++
moudo网络库剖析
muduo
简介
muduo
是陈硕大神在Linux平台下基于C/C++开发的高性能网络库,在此基础上可以很方便的扩展,进行二次开发编写如http服务器。
小狗吠吠吠
·
2023-03-31 10:18
linux网络编程
网络
网络
linux
服务器
c++
架构
c++游戏服务器框架
c++游戏服务器框架skynet是一个开源的,轻量级的,为在线游戏服务器打造的框架skynet
muduo
是一个基于Reactor模式的C++网络库
muduo
boostasio是一个异步的网络框架官网:http
lucky九年
·
2023-03-30 20:30
c++
服务器
c++
游戏
muduo
源码学习(四) 实现TCP网络库(中)
runInLoop相关在之前得文章中提到了EventLoop::runInLoop(),该函数用于在EventLoop的IO线程执行某个用户的任务回调,源码如下:voidEventLoop::runInLoop(constFunctor&cb){if(isInLoopThread()){//判断是否在当前IO线程cb();//同步调用}else{queueInLoop(cb);//加入队列}}若用
荏苒何从cc
·
2023-03-28 12:58
muduo
中的reactor
muduo
使用的是reactor模式,关于
muduo
的其他内容不做过多赘述。此文作为自己阅读
muduo
源码的笔记,目的在于用直白的语言记录阅读时的理解。
muduo
网络库,分为两个部分。
犭虫彳亍口苗
·
2023-03-27 17:18
如何学会网络编程
经过工作一年的积累与最近
muduo
网络库在业务中的实际应用。总算把网络编程入门了,并且基本看完了整个
muduo
库,收获颇多。
三妖寺方丈
·
2023-03-24 21:33
Muduo
_Day7(Connector,TcpClient)
Connector类Connector只负责建立socket连接,不负责创建TcpConnection对象,它的newConnectionCallback回调的参数是socket文件描述符.
Muduo
中的
angel_贝贝
·
2023-03-22 21:47
muduo
这本书该如何看
muduo
库有作者专门的一本书来讲。总体来说,这本书需要一定的c++功底,网络编程的基本功底,才能看懂,否则读起来很吃力,很乏味。应该说是中等程序员的书目。
三妖寺方丈
·
2023-03-22 10:25
Muduo
_Day 3(网络库)
多线程与并发服务器:(1)循环式(iterative)服务器:每处理一次请求,就关闭一次,使用的是TCP短连接,只使用单线程模式,没法充分发挥多核CPU的优势.(2)惊群现象:当一个客户端连接过来时,有多个子进程处于accept状态,多个进程都有返回,但只有一个进程返回成功.TCP网络编程的本质是处理三个半事件:连接建立:服务器accept(被动)接受连接,客户端connect(主动)发起连接连接
angel_贝贝
·
2023-03-16 05:05
Muduo
_Day5(EventLoopThread和EventLoopThreadpoll)
EventLoopThread类一个程序可以有不止一个IO线程,IO线程也不一定是主线程,我们可以在任何一个线程创建并运行Eventloop.且任何一个线程只要创建并运行了Eventloop,就称该线程为IO线程.EventloopThread类封装了IO线程,该类创建了一个线程,并在线程函数中创建了一个Eventloop对象,然后将其地址赋值给loop_成员变量,然后notify()条件变量,唤
angel_贝贝
·
2023-03-13 05:56
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他