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
网络库——noncopyable.h
从这里开始就是剖析
muduo
网络库项目了。出发!!!!noncopy.h这个头文件时其他类的基类。
shenmingik
·
2020-08-16 11:21
剖析moduo网络库
muduo
库学习篇-Timestamp类的学习 时间类
在平时的开发中,我们经常会遇到很多和时间有关系的代码,因此在
muduo
库中,作者也设计了Timestamp类,来对时间的使用头文件://UseofthissourcecodeisgovernedbyaBSD-stylelicense
Coldestmonth
·
2020-08-16 10:02
C++知识点
muduo库
Muduo
网络库源码分析(二) 定时器TimeQueue,Timer,TimerId
Muduo
的TimerQueue采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的binaryheap的做法,如果程序中大量(10个以上)使用重复触发的定
YongApple
·
2020-08-16 10:22
muduo
muduo
网络库学习之Timestamp类、AtomicIntegerT 类封装中的知识点
一、Timestamp类封装classTimestamp:public
muduo
::copyable,publicboost::less_than_comparable类图如下:值语义:可以拷贝,拷贝之后
s1mba
·
2020-08-16 10:43
muduo网络库学习
muduo
网络库源码复现笔记(十九):TimeQueue定时器
Muduo
网络库简介
muduo
是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2020-08-16 10:10
muduo
muduo
网络库学习笔记(1):Timestamp类
muduo
网络库对时间戳Timestamp类也进行了封装。
li27z
·
2020-08-16 10:38
muduo
muduo
库Timestamp、Date、TimeZone分析
Timestamp类Date类TimeZone类先了解关于时间的一个结构体和获取时间的一个函数。#includestructtimeval{__time_ttv_sec;/*Seconds.*/__suseconds_ttv_usec;/*Microseconds.*/};tv_sec指从Epoc到现在的秒数。tv_usec指从Epoch到现在的微秒数。Epoch指的是一个特定的时间:1970-0
KangRoger
·
2020-08-16 10:06
muduo源码学习
muduo
网络库定时器的实现
nanosleep,clock_nanosleep,gettimer/settitimer,timer_create/timer_settime/timer_gettime/timer_delete,还有
muduo
FreeeLinux
·
2020-08-16 10:33
Muduo源码剖析
muduo源码剖析
muduo
网路库——InetAddress
这个类的主要作用就是封装socket。由于博主是在windows平台下,所以用的头文件时windows.h和Ws2tcpip.h。linux平台下应该用sys/socket.h、netinet/in.h和arpa/inet.h。InetAddress.h#pragmaonce/*linux下*#include//forsockaddr*#include*/#include#include//封装s
shenmingik
·
2020-08-16 10:16
剖析moduo网络库
cpp
c++
muduo
网络库——Timestamp
这个类主要是获取当前时间,以及把当前时间转换为字符串打印出来。Timestamp.h#pragmaonce#includeclassTimestamp{public:Timestamp();explicitTimestamp(int64_tmicroSecondsSinceEpoch);//获取当前时间staticTimestampnow();//int64转换为字符串std::stringtoS
shenmingik
·
2020-08-16 10:16
剖析moduo网络库
Linux——文件系统及相关操作命令
唉,本来想这阵子把
muduo
网络库剖析完。但是最近受了伤,去医院耽搁了。结果就是。。。
muduo
还没整完。今天先完成一下之前欠的债。Linux的文件体系磁盘为什么要讲磁盘呢?
shenmingik
·
2020-08-16 10:16
linux
linux
HotSpot的垃圾回收算法
这系列文章只简单介绍一下HotSpot垃圾回收中涉及到的算法及相关的垃圾回收器,并不进行
源代码分析
,后面会开一个系列对HotSpot的垃圾回收以及内存管理进行源代码解读。
HotSpot-Researcher
·
2020-08-16 10:00
代码分析工具推荐Understand
代码分析工具Understand官网:http://www.scitools.com/破解版:http://www.cr173.com/soft/29306.html----
源代码分析
&度量Understand
Hosea14
·
2020-08-16 05:42
随意一笔
C++ 工程实践(1):慎用匿名 namespace
muduo
0.1.7中的
muduo
/base
weixin_33979745
·
2020-08-16 02:07
muduo
net库学习笔记6——缓冲区Buffer及TcpConnection的读写操作
感谢并转载自https://blog.csdn.net/sinat_35261315/article/details/78357586必须得多看几遍==在tcp的通信过程中,内核其实为tcp维护着一个缓冲区当调用write/send时,会向内核缓冲区中写入数据,内核和tcp协议栈负责将缓冲区中的数据发送到指定的目标位置。当有数据到达内核的tcp缓冲区中,如果开启了对套接字可读事件的监听,那么内核会
听说西佳佳难得很
·
2020-08-16 00:38
muduo源码
muduo
net库学习笔记5——服务器监听类Acceptor、Tcp连接(优雅关闭连接)、TcpConnection的建立与关闭
先简单例子:创建服务器(TcpServer)时,创建Acceptor,设置接收到客户端请求后执行的回调函数Acceptor创建监听套接字,将监听套接字绑定到一个Channel中,设置可读回调函数为Acceptor的handleRead服务器启动,调用Acceptor的listen函数创建监听套接字,同时将Channel添加到Poller中有客户端请求连接,监听套接字可读,Channel被激活,调用
听说西佳佳难得很
·
2020-08-16 00:38
muduo源码
muduo
net库
muduo源码解析
muduo
net库学习笔记4——事件驱动循环EventLoop、runInLoop和queueInLoop及对应唤醒
首先总体情况:每个
muduo
网络库有一个事件驱动循环线程池EventLoopThreadPool,线程池用在事件驱动循环上层,也就是事件驱动循环是线程池中的一个线程每个TcpServer对应一个事件驱动循环线程池每个线程池中有多个事件驱动线程
听说西佳佳难得很
·
2020-08-16 00:37
muduo源码
muduo
net库学习笔记7——用于创建服务器的类TcpServer
muduo
为每个EventLoop设计了runInLoop和queueInLoop函数用来将本该在其他线程执行的线程不安全函数放到它所属线程执行,从而达到线程安全。
听说西佳佳难得很
·
2020-08-16 00:06
muduo源码
muduo
net库学习笔记8——件驱动循环线程池EventLoopThreadPool
感谢并转载自https://blog.csdn.net/sinat_35261315/article/details/78376821线程池的作用体现在用户启动TcpServer服务器时创建大量子线程,每个子线程创建一个EventLoop并开始执行EventLoop::loop主线程的线程池保存着创建的这些线程和EventLoop当Acceptor接收到客户端的连接请求后返回TcpServer,T
听说西佳佳难得很
·
2020-08-16 00:06
muduo源码
evpp网络库代码分析(二)
上图是盗用自《Linux多线程服务端编程,使用
muduo
C++网络库》一书6.6.2章节(以及下面的时序图也是盗用该书的图)。
mkelehk
·
2020-08-15 23:59
TCP/IP网络
关于Android主线程(ActivityThread)
源代码分析
以及一些特殊问题的非常规方法
在写这篇博客之前,先抛出一个问题,安卓应用程序的入口是什么呢?我想不少人可能回答说:application的onCreate方法,其实并不是的,即使是application,也有一个方法比onCreate先执行,这个方法就是attachBaseContext(Contextcontext)方法:一般情况下,可以在这个方法中进行多dex的分包注入,比如下面的代码:@Overrideprotected
shifuhetudi
·
2020-08-15 19:44
Android框架层
[Binder.3] Android系统进程间通信(IPC)机制Binder中的Server启动过程
源代码分析
在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder中的Server和Client获得ServiceManager接口之路中,介绍了在Android系统中Binder进程间通信机制中的Server角色是如何获得ServiceManager远程接口的,即defaultServiceManager函数的实现。Server获得了ServiceManager远程接口之后,就要把自己的S
yzhang8703
·
2020-08-15 17:48
Android
-
Reference
学习开源网络库
muduo
的一点心得
最近这一周在学习陈硕的
muduo
网络库。里面用到了好多回调函数,现在看到第八章,把其中核心的网络模型梳理了一下。
limwz
·
2020-08-15 17:55
muduo
Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程
源代码分析
...
在上一篇文章中,我们分析了Android系统进程间通信机制Binder中的Server在启动过程使用ServiceManager的addService接口把自己添加到ServiceManager守护过程中接受管理。在这一篇文章中,我们将深入到Binder驱动程序源代码去分析Client是如何通过ServiceManager的getService接口中来获得Server远程接口的。Client只有获
iteye_12049
·
2020-08-15 12:11
GRBL
源代码分析
网上关于GRBL
源代码分析
的资料几乎找不到,这篇博客里的内容大多是自己对源
xufeixueren
·
2020-08-15 12:52
嵌入式技术
GRBL
DDA插补
grbl1.1
源代码分析
GRBL1.1
源代码分析
感谢硬件测试提供者https://shop298719590.taobao.com/新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中
weixin_41776940
·
2020-08-15 12:46
NMEA-0183国外开源库
源代码分析
-README
NMEAlibraryNMEA库Disclaimer免责声明TheNationalMarineElectronicsAssociation(NMEA)hasdevelopedaspecificationthatdefinestheinterfacebetweenvariouspiecesofmarineelectronicequipment.Thestandardpermitsmarineelec
linpeng1577
·
2020-08-15 11:01
开源项目
Gears Android WIFI/基站定位
源代码分析
GearsAndroidWIFI/基站定位
源代码分析
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静BronchoA1还不支持基站和WIFI
李先静
·
2020-08-15 07:57
android
Chrome
源代码分析
之single process 模式分析(十七)
如果选择了单进程模式,那么只需要建立一个renderer线程即可,同时为这个线程搭建ipc功能,虽然同一个进程,renderer与browser之间仍然通过ipc通信,这样多进程和单进程的通信方法统一在一起了。各种IPC消息的映射代码不需要做任何改动。代码如下://Crankupathreadandruntheinitializationthere.Withthewaythat//messages
namelcx
·
2020-08-15 07:46
JAVA中Socket的用法模拟服务端和客户端
《看透springMvc
源代码分析
与实践》学习笔记Socket分为ServerSocket和Socket两个大类ServerSocket用于服务端,可以通过accept方法监听请求,监听到请求后返回Socket
diyou0211
·
2020-08-15 02:48
muduo
多线程的处理
一般网络编程中为什么会用到多线程呢,无非是充分利用服务器多核的特性,提高网络并发量,吞吐率等。一般情况下,我们可以轻松想到这样的模型:主线程中监听socket连接事件,当产生新的连接时生成新的线程来处理。这种方式比较直接,但是有些不好处理的地方,例如线程的数量,真的是一个连接开一个线程吗。其实可以用线程池来解决这个问题,那说到线程池,那又如何解决线程与连接对应的问题,毕竟一个连接肯定是始终要在一个
Shonm
·
2020-08-14 22:20
muduo
linux网络编程
muduo
源码分析
evpp性能测试(1): 与
muduo
进行吞吐量测试
Byzieckey简介
muduo
是最近几年中国开源界里产生的优秀作品。它是由业内大牛陈硕实现的。
zieckey
·
2020-08-14 22:59
evpp
从零开始学写HTTP服务器(六)使用
muduo
网络库
muduo
源码中内嵌了一个简单的HTTPserver程序,源码见
muduo
/net/http。看了源码之后受益匪浅。
NearXDU
·
2020-08-14 22:38
Http协议
muduo
实现聊天服务器
muduo
实现聊天服务器
muduo
实现一个聊天室服务器,客户发送的消息将广播到连入的所有客户(包括自己)。
NearXDU
·
2020-08-14 22:38
muduo和多线程学习
muduo
源码分析之TcpConnection发送数据
(一)writeable事件的busyloop发送数据是要比接收数据更加麻烦的事情,因为它是一个主动发生的事情,考虑下面情况:水平触发模式(Level-Triggered);当socket可写时,会不停的触发socket可写的事件,如何处理?也就是说,如果发送缓冲不满,将不停触发socket可写事件,也就是说,poll/epoll调用不停返回,也就进入busyloop了。怎么解决这个问题,以前有一
NearXDU
·
2020-08-14 22:05
muduo和多线程学习
C++多线程
muduo
源码分析之EventLoop::runInLoop()函数
今天花了一天时间所学习的EventLoop::runInLoop()就打开
muduo
多线程编程的大门。
NearXDU
·
2020-08-14 22:05
muduo和多线程学习
C++多线程
muduo
源码分析之EventLoop、Channel、Poller的实现
作者一直强调的一个概念叫做oneloopperthread,撇开多线程不谈,本篇博文将学习,怎么将传统的I/O复用poll/epoll封装到C++类中。1.I/O复用复习使用poll/epoll进行I/O复用的一些编程内容。使用poll对于一个文件描述符fd来说,我们将通过structpollfd来设置我们关注的事件event,并在通过poll调用返回获取活跃的事件revent。比如说(伪代码):
NearXDU
·
2020-08-14 22:04
muduo和多线程学习
C++多线程
muduo
日志类的封装
1.日志的作用错误分为:1.编译错误2.运行时错误(逻辑错误,使用GDB调试的话,很难分析。如果使用日志,将运行过程通过日志打印出来)作用:1.开发过程中:调试错误更好的理解程序:在阅读别人的代码是,通过添加日志,可以理清程序的整个流程。2.运行过程中:诊断系统故障并处理记录系统运行状态2.日志涉及到4个文件:logging.hlogging.ccLogStream.hLogStream.cccl
yvhqbat
·
2020-08-14 22:07
muduo多线程编程
muduo
源码分析--我对
muduo
的理解
分为几个模块EventLoop、TcpServer、Acceptor、TcpConnection、Channel等对于EventLoop来说:他只关注里面的主驱动力,EventLoop中只关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的所有Channel,这个loop属于哪一个Server.几个类存在的意义:从应用层使用的角度来看,用户需要初始化一个
鱼思故渊
·
2020-08-14 22:35
muduo源码分析
muduo
源码分析--buffer中的线程安全
在栈上准备了一个65536字节的extrabuf(这个空间是在readFd函数内部定义的,说以说是内部栈空间,在这个函数返回以后这个栈空间就会消失,属于临时变量),然后利用readv(0来读取数据,iovec有两块,第一块指向MuuodBuffer中的writable字节,另一快指向栈上extrabuf。这样如果读入的数据不多,那么全部都读到Buffer中去了;如果长度超过Buffer的writa
鱼思故渊
·
2020-08-14 22:35
muduo源码分析
muduo源码分析
c++
线程
网络编程
muduo
源码分析---EventLoopThread
这个类只有两个对外接口的函数,一个构造函数,一个开始Loop的函数类的内部成员:一个Loop指针loop_(说明内部并没有实例化EventLoop)一个线程thread_一个锁Mutex一个条件变量cond_一个初始化回调callback_EventLoopThread初始化传递的是函数回调,同时开启一个线程,线程函数运行的就是实例化一个EventLoop,并让这个EventLoop进入到loop
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo
源码分析---EventLoop类
现在暂时记住TcpConnection是TcpServer中Acceptor关注的监听套接字上accept新连接后被初始化的一个对象,接下来分析下EventLoop这个东西才是真正驱动库的核心,是别的类(EpollPollerAcceptor)帮助他完成了库的功能,看看内部是怎么实现的。EventLoop:这个类中最重要的成员就是poller_,这个成员调用epoll_wait监听这个EventL
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo
源码分析--数据在
muduo
中的旅程
在实例化一个EvenLoop之后,就会有两个socketfd(这两个套接字分别归属于两个Channel中,一个是异步唤醒的wakeFd,一个timequeue初始化的fd)被添加到监听队列中数据发送的流程:数据的发送主要靠异步唤醒,当主IO线程接受到一个新的连接后,在TcpServer中实例化一个TcpConnection,然后这个新的连接被挂载到某个线程池(EventLoopThreapPool
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
muduo
源码分析--事件如何被关注的 EpollPoller Channel TcpServer
首先看TcpServer:在这里肯定是有socketfd的,不然这个监听套接字是怎么被关注的呢!这样的操作时通过Accept来处理的Acceptor:在这个类就是提供给TcpServer让其监听的,类中有Channel,也有一个Socket,有一个事件handleRead(),这个函数肯定是提供给Channel的,等到Acceptor中的socketfd有事件时,肯定是可读事件,调用Channel
鱼思故渊
·
2020-08-14 22:34
muduo源码分析
muduo源码分析
开源库
muduo
学习-总结篇
首先感谢原著陈硕大牛的奉献,使我对TCP网络编程加深认识,清楚了多线程编程模型及适用范围,现代C++资源管理,事件回调的用法;木铎是一个开源的tcp网络库,帮助我们实现底层TCP逻辑,我们只需关注业务逻辑的实现即可。保证数据有效完整的到达,客户端重连。里面用了现代c++linux新系统调用。Reator事件循环是核心,oneloopperthread模式,非阻塞+IO多路复用。阐述了几大部分:1多
小媛媛呦
·
2020-08-14 22:24
muduo
/base库学习笔记(4)-----MutexLock类
MutexLock类1构造函数和析构函数的实现构造函数的实现MutexLock():holder_(0){//进行加锁MCHECK(pthread_mutex_init(&mutex_,NULL));}析构函数的实现~MutexLock(){assert(holder_==0);//解锁MCHECK(pthread_mutex_destroy(&mutex_));}2普通成员函数的实现isLock
xiuxiu__deng
·
2020-08-14 22:31
muduo
muduo
/base库学习笔记(3)-----Thread类
Thread类1构造函数和析构函数Thread(ThreadFunc,conststring&name=string())构造函数的实现,其中name有默认值为空Thread::Thread(ThreadFuncfunc,conststring&n):started_(false),joined_(false),pthreadId_(0),tid_(0),func_(std::move(func)
xiuxiu__deng
·
2020-08-14 22:31
muduo
muduo
/net库(1)
1如果说你不用
muduo
的net库,让你用epoll监听,你会怎样写服务器?下面是我写的,为了让代码的逻辑更加清晰,我这里没有进行出错判断。
xiuxiu__deng
·
2020-08-14 22:59
muduo
muduo
--EventLoop处理线程安全的问题
这样一来会带来线程安全性方面的问题,
muduo
的解决方法不是加锁,而是把对TimeQueue的操作转移到IO线程来进行,EventLoop::runInLoop(constFunctor&cb)函数,参数
wuqiyi_71
·
2020-08-14 22:12
C++
linux
muduo
网络库net篇二:定时器
Timer、TimerId类Timer类主要成员数据:constTimerCallbackcallback_;//回调函数Timestampexpiration_;//定时器超时时间constdoubleinterval_;//定时器超时时间constboolrepeat_;//interval_>0constint64_tsequence_;//定时器IdTimer类提供定时器回调函数,管理定时
视此虽近_邈若山河
·
2020-08-14 22:34
muduo网络库
上一页
13
14
15
16
17
18
19
20
下一页
按字母分类:
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
其他