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
Rasa3源码剖析
muduo
源码剖析
之Timer定时器
简介Timer类是muduo网络库中的一个定时器类,用于在指定的时间间隔后执行某个任务。Timer类提供了一系列的方法来创建、启动、停止和删除定时器,以及设置定时器的时间间隔和回调函数等。在muduo网络库中,Timer类被广泛应用于各种网络任务中,例如定期发送心跳包、更新缓存、清理资源等。通过使用Timer类,我们可以方便地实现定时任务,提高网络应用程序的可靠性和稳定性。以下是muduo网络库中
@新法
·
2023-11-08 00:33
muduo源码剖析
linux
服务器
后端
c语言
muduo
源码剖析
定时器
muduo
源码剖析
之InetAddress
源码比较简单,已经编写详细注释
源码剖析
InetAddress.h//Copyr
@新法
·
2023-11-08 00:18
muduo源码剖析
c++
服务器
后端
muduo
源码剖析
redis ,redisson 分布式锁深入剖析
redis分布式锁redis原始分布式锁实现加锁释放锁redis分布式锁存在的问题redisson实现分布式锁redisson是什么redisson加锁方法
源码剖析
redissonwatchdog是什么
Corn-玉米
·
2023-11-07 20:32
微服务
高并发
分布式锁
redis
lock
redisson
redlock
watchdog
【muduo
源码剖析
】Buffer类的设计
文章目录为什么要有缓冲区的设计Buffer缓冲区设计Buffer基本成员读写数据时对Buffer的操作向Buffer写入数据:readFd空间不够怎么办?从Buffer中读取数据TcpConnection使用BufferTcpConnection接收客户端数据(从客户端sock读取数据到inputBuffer)TcpConnection向客户端发送数据(将ouputBuffer数据输出到socke
Last-Week
·
2023-11-07 07:31
muduo源码解析
网络
网络协议
muduo
服务器
muduo
源码剖析
之Socket类
Socket封装了一个sockfd相关的设置比较简单,已经编写注释//Copyright2010,ShuoChen.Allrightsreserved.//http://code.google.com/p/muduo/////UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.//Auth
@新法
·
2023-11-07 07:31
muduo源码剖析
muduo
后端
服务器
linux
c语言
c++
源码剖析
【muduo
源码剖析
】Thread/ThreadPool源码解析
文章目录前言从EchoServer入手查看调用过程EventLoopThreadPool详解EventLoopThreadPool重要成员线程池中简单的负载均衡EventLoopThread详解EventLoopThread重要变量开启事件循环的细节Thread::start()真正开始创建线程前言参考muduo库使用C++11重写网络库GitHub地址:TinyC++NetworkLibrary
Last-Week
·
2023-11-07 07:01
muduo源码解析
c++
linux
后端
服务器
muduo
【muduo
源码剖析
】Channel设计分析
文章目录什么是Channel成员变量成员函数设置此Channel对于事件的回调函数设置Channel感兴趣的事件到Poller更新Channel关注的事件移除操作用于增加TcpConnection生命周期的tie方法(防止用户误删操作)根据相应事件执行Channel保存的回调函数完整代码Channel.hChannel.cc参考什么是Channel参考muduo库使用C++11重写网络库GitHu
Last-Week
·
2023-11-07 07:31
muduo源码解析
网络
c++
linux
后端
muduo
【muduo
源码剖析
】Poller/EPollPoller设计分析
文章目录muduo是怎么实现I/O复用的基类Poller的设计newDefaultPollerEPollPoller类设计成员函数返回发生事件的poll方法填写活跃的连接fillActiveChannels更新channel在epoll上的状态从epoll中移除监视的channel完整代码EPollPoller.hEPollPoller.cc参考muduo库使用C++11重写网络库GitHub地址
Last-Week
·
2023-11-07 07:31
muduo源码解析
后端
linux
c++
muduo
源码剖析
Muduo
源码剖析
笔记
muduo-note.md·Scut-Corgis/Muduo
源码剖析
笔记-码云-开源中国(gitee.com)
Scut-Corgis
·
2023-11-07 07:30
c++
muduo
源码剖析
--Buffer
Buffer类Buffer类是自定义处理数据输入缓冲的类,底层是vector,通过readIdx和writeIdx将缓冲区分为3个部分,第一部分是预留的8字节+已经读出的缓冲区字节数、第二部分是还未读出的部分、第三部分是可写的部分。Buffer类的设计是TcpConnection类设计的核心,一个TcpConnection必须有一个inputBuffer和一个outputBuffer。必须存在in
godaa
·
2023-11-07 07:55
muduo
c++
muduo网络库
多线程
socket
muduo
源码剖析
--EventLoop类
EventLoop类Reactor模式的实现类,连通Channel类和Poller类的桥梁,也是上层注册和回调的实际调用类。//事件循环类主要包含了两个大模块ChannelPoller(epoll的抽象)classEventLoop:noncopyable{public:usingFunctor=std::function;EventLoop();~EventLoop();//开启事件循环void
godaa
·
2023-11-07 07:55
muduo
c++
多线程
muduo网络库
socket
muduo
源码剖析
--Channel类
Channel类剖析channel在muduo中是对文件描述符的一种底层封装,具体而言是封装了对某个文件描述符的读写事件、错误事件、关闭事件的回调,并主要与EventLoop类进行交互,而EventLoop实际上是根据channel的调用实际调用poller或者EpollPoller进行文件描述符具体事件的管理。public:usingEventCallback=std::function;//m
godaa
·
2023-11-07 07:25
muduo
c++
多线程
muduo网络库
socket
muduo
源码剖析
--Poller/EpollPoller
Poller类Poller是EpollPoller和poll的基类实现,是一个虚基类,主要封装了IO多路复用的核心接口//muduo库中多路事件分发器的核心IO复用模块classPoller{public:usingChannelList=std::vector;Poller(EventLoop*loop);virtual~Poller()=default;//给所有IO复用保留统一的接口virt
godaa
·
2023-11-07 07:25
muduo
多线程
muduo网络库
socket
c++
muduo
源码剖析
- TcpConnection
说明1.TcpConnection封装了连接socket和他的不同事件的回调,以及两个缓冲区。一个TcpConnection只能由一个EventLoop管理.具体由哪个loop管理由TcpServer轮询IO线程池给分配一个。2.enable_shared_from_this,把当前对象转换成share指针,全局使用的都是它的智能指针。3.在连接到来,创建一个TcpConnection对象,立刻使
YanWenCheng_
·
2023-11-07 07:53
muduo
c++
后端
服务器
muduo
源码剖析
- worker线程池剖析
1、ThreadPool的成员变量:/*我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。*/mutableMutexLockmutex_;ConditionnotEmpty_GUARDED_BY(mutex_);//GUARDED_BY
YanWenCheng_
·
2023-11-07 07:22
muduo
c++
后端
muduo
源码剖析
之SocketOps类
SocketOps对socket设置API的封装比较简单,已经编写注释//Copyright2010,ShuoChen.Allrightsreserved.//http://code.google.com/p/muduo/////UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.//Au
@新法
·
2023-11-07 07:21
muduo源码剖析
c语言
服务器
后端
c++
muduo
源码剖析
网络编程
详解并发编程包之 Go errgroup
我们在之前的文章——
源码剖析
sync.WaitGroup(文末思考题你能解释一下吗?),从源码层面分析了sync.WaitGroup的实现,使用waitGroup可以实现一个goro
煎鱼(EDDYCJY)
·
2023-11-06 01:43
java
编程语言
go
python
golang
【设计模式从入门到精通】13-命令模式
笔记来源:尚硅谷Java设计模式(图解+框架
源码剖析
)文章目录命令模式1、智能生活项目需求2、基本介绍3、命令模式解决智能生活项目4、Spring框架JdbcTemplate源码分析5、命令模式的注意事项和细节命令模式
VectorUx
·
2023-11-05 04:28
设计模式从入门到精通
设计模式
命令模式
《React Native 精解与实战》书籍连载「React Native 源码学习方法及其他资源」
15.6ReactNative
源码剖析
我们在学习了Reac
DevOpenClub
·
2023-11-04 15:12
Eureka
源码剖析
思考一些问题Eureka注册中心使用什么样的方式来储存各个服务注册时发送过来的机器地址和端口号?各个服务找EurekaServer拉取注册表的时候,是什么样的频率?各个服务是如何拉取注册表的?一个几百服务,部署上千台机器的大型分布式系统,会对EurekaServer造成多大的访问压力?EurekaServer从技术层面是如何抗住日千万级访问量的?前提须知各个服务内的EurekaClient组件,默
康俊1024
·
2023-11-04 10:46
c++程序员的十年编程功底你能接几成?
前言:(c++入门干货分享)1.书籍推荐:《C++Primer第5版》->《EffectiveC++》->《Effectivestl》->《STL
源码剖析
》->《深度探索C++对象模型》2.学习网站:推荐
小智的IT世界
·
2023-11-04 04:46
c++
开发语言
Java集合之List类型--LinkedList底层
源码剖析
文章目录1、LinkedList简介2、LinkedList底层实现2.1、LinkedList初始化2.2、添加元素2.3、查找给定元素3、总结1、LinkedList简介 LikedList是List接口的实现类,与ArrayList不同的是它的底层实现不是数组,而是一个双向链表。由此我们可以知道,LinkedList比起ArrayList更适合做插入删除等操作,因为ArrayList在指定
LessenPaul
·
2023-11-03 22:04
Java基础及源码剖析
数据结构与算法
java
list
链表
数据结构
算法
HDFS架构师3.1-元数据管理流程2(日志同步及fsimage互传)
19}20}21}22}元数据
源码剖析
.png1、内存里面的元数据刷盘image.png19}接上期——1.1.1.1》FSEditLog.logSync()——1.1.1.1.1》EditLogOutputStream.flush
fat32jin
·
2023-11-03 06:11
自己动手写C++迭代器
综述关于STLiterator和iteratoradapter的部分我已在先前的博客stl
源码剖析
笔记之iterator中有所提及,下面我们可以试着自己动手写一个简单的迭代器工具step_iterator
朱明代月
·
2023-11-02 22:01
iterator
STL
iterator
facade
Boost
迭代器
kafka生产者源码解析
文章学习自《ApacheKafka
源码剖析
》和实际源码。
yyoc97
·
2023-11-02 16:32
大数据
Kafka
kafka
生产者
源码解析
架构
大数据
JavaSE之HashMap源码面试
看这篇就够了)JavaSE之HashMap1常见问题2预备知识2.1位运算知识2.2ArrayList2.3LinkedList2.4RedBlackTree(红黑树)2.5HashTable3.HashMap
源码剖析
黑面|书生
·
2023-11-02 16:18
JavaSE
java
面试
数据结构
链表
Flutter之GetX controller tag使用详解
作用前面几篇文章介绍了GetX依赖注入的使用以及通过
源码剖析
了依赖注入的原理:•《Flutter应用框架搭建(一)GetX集成及使用详解》•《Flutter通过源码一步一步剖析Getx依赖管理的实现》•
shelutai
·
2023-11-02 07:47
flutter/dart
flutter
STL
源码剖析
系列:其一、list
一、基本用法list的基本用法比较简单,可以参考站长严长生的教程:C++list(STLlist)容器完全攻略(超级详细)下面重点介绍list源码。二、
开元固本散
·
2023-10-31 23:59
c++
python生成器源码戏说
Python生成器
源码剖析
生成器是个什么鬼?生成器(Generator)在python2.3时成为python的标准特性,因此也多加了一个yield的关键字.
Python3.7
·
2023-10-31 10:25
Python
Python
grpc-go
源码剖析
七十二之服务器端keepalive原理图介绍以及源码分析
已发表的技术专栏0 grpc-go、protobuf、multus-cni技术专栏总入口1 grpc-go
源码剖析
与实战 文章目录2 Protobuf介绍与实战图文专栏 文章目录3 multus-cni
码二哥
·
2023-10-31 07:57
golang
grpc
grpc-go
架构师
微服务架构
grpc-go
源码剖析
六十五之服务器端HealthChecking原理介绍
已发表的技术专栏0 grpc-go、protobuf、multus-cni技术专栏总入口1 grpc-go
源码剖析
与实战 文章目录2 Protobuf介绍与实战图文专栏 文章目录3 multus-cni
码二哥
·
2023-10-31 07:56
golang
grpc
docker
kubernetes
微服务架构
grpc-go
源码剖析
四十二之服务器端数据处理器handleData源码简单分析
服务器端接收到客户端发送过来的数据帧后,交由handleData方法进行处理;本小节,我们先整体的了解一下handleData整体处理流程;后面的章节中,再具体分析。1、分析入口在grpc-go源码中提供了测试用例,随便找一个服务器端的启动文件main.go,参考下面的调用链即可找到:main.go->s.Serve->s.handleRawConn(rawConn)->s.serveStream
码二哥
·
2023-10-31 07:26
码二哥的技术专栏
grpc
golang
docker
kubernetes
微服务架构
grpc-go
源码剖析
四十六之服务器端是如何将数据帧缓存到recvBuffer里?(多个数据帧时,在底层是如何来存储的?)
已发表的技术专栏0 grpc-go、protobuf、multus-cni技术专栏总入口1 grpc-go
源码剖析
与实战 文章目录2 Protobuf介绍与实战图文专栏 文章目录3 multus-cni
码二哥
·
2023-10-31 07:26
grpc
golang
docker
kubernetes
微服务架构
grpc-go
源码剖析
十之基于consul实现自定义解析器
已发表的技术专栏0 grpc-go、protobuf、multus-cni技术专栏总入口1 grpc-go
源码剖析
与实战 文章目录2 Protobuf介绍与实战图文专栏 文章目录3 multus-cni
码二哥
·
2023-10-31 07:26
grpc
golang
docker
kubernetes
微服务
grpc-go
源码剖析
三十二之grpc服务器端处理客户端请求的整体流程?
已发表的技术专栏0 grpc-go、protobuf、multus-cni技术专栏总入口1 grpc-go
源码剖析
与实战 文章目录2 Protobuf介绍与实战图文专栏 文章目录3 multus-cni
码二哥
·
2023-10-31 07:26
grpc
golang
docker
kubernetes
微服务架构
grpc-go
源码剖析
九之dnsResolver解释器以及实战测试coredns
本篇文章主要是分析一下dnsResolver类型的解析器的核心原理;并且进行实际测试;最后分析一下,当dnsResolver解析失败时,实现重试机制的原理;1、dnsResolver解析器原理介绍dns解析器的原理:其实底层调用的是golang自带net包中的LookupHost、LookupSRV、LookupTXT三个函数来实现解析的。通过这三个函数远程去访问dns服务器,最终将用户设置的链接
码二哥
·
2023-10-31 07:56
码二哥的技术专栏
grpc
docker
kubernetes
微服务
golang
gRPC
源码剖析
-Builder模式
一、Builder模式1、定义将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的的表示。2、适用场景当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。当构造过程必须允许被构造的对象有不同的表示时。说人话:当你要构造一个对象它的参数大于4个尤其是有些参数是必选有些是可选的就可以考虑使用Builder构造模式。3、Builder模式最简单一个例子创建一个Person对象,
程序员青菜学厨艺
·
2023-10-31 07:47
Java技术
建造者模式
gRPC
源码剖析
-Server启动流程
创建一个gRPCServer代码很简单就这么两行,我们可以运行起来单步调试来学习一下gRPCServer启动流程。Serverserver=ServerBuilder.forPort(50051).addService(newOrderServiceImpl()).build().start();server.awaitTermination();一、.forPort绑定端口调用NettyServ
程序员青菜学厨艺
·
2023-10-31 07:44
Java技术
服务器
数据库
运维
Flask
源码剖析
(二): 路由原理
前言在上一篇中,从最简单使用形式入手,简单的过了一遍Flask应用启动流程以及其背后的原理,本篇将会以类似的风格剖析Flask路由相关的内容,同样不会涉及过多细节,力求从较高的维度去看。Flask版本:1.0.2endpoint端点回归一下上一篇文章,在通过@app.route()装饰器将函数转为Flask视图函数时,多次提及了endpoint,对应的add_url_rule()代码如下。#fla
懒编程-二两
·
2023-10-31 03:18
Flask
源码剖析
(二):路由原理
前言在上一篇中,从最简单使用形式入手,简单的过了一遍Flask应用启动流程以及其背后的原理,本篇将会以类似的风格剖析Flask路由相关的内容,同样不会涉及过多细节,力求从较高的维度去看。Flask版本:1.0.2endpoint端点回归一下上一篇文章,在通过@app.route()装饰器将函数转为Flask视图函数时,多次提及了endpoint,对应的add_url_rule()代码如下。#fla
二两hackpython
·
2023-10-31 03:17
Python
后端开发
语言开发
python
flask
多线程并发编程17-线程池ThreadPoolExecutor
源码剖析
今天来说一说线程池ThreadPoolExecutor,线程池主要解决两个问题:一是当执行大量异步任务时线程池能够提供较好的性能。在不使用线程池时,每当需要执行异步任务时直接new一个线程来运行,而线程的创建和销毁都需要开销。线程池中的线程是可以复用的,不需要每次执行异步任务都进行创建线程,从而减少了开销。二是线程池提供了一种资源限制和管理的手段,例如限制线程的个数、动态增加线程的个数、缓存异步任
Demo_zfs
·
2023-10-30 21:09
java+hashset源码解析_【java集合框架
源码剖析
系列】java
源码剖析
之HashSet
注:博主java集合框架
源码剖析
系列的源码全部基于JDK1.8.0版本。本博客将从源码角度带领大家学习关于HashSet的知识。
weixin_39611389
·
2023-10-30 09:50
java hashset源码解析,Java记录 -70- HashSet
源码剖析
HashSet不包含重复元素,由哈希表支持。下面我就开始剖析下HashSet的源代码:首先从构造方法开始;privatetransientHashMapmap;publicHashSet(){map=newHashMap();}publicHashSet(CollectionextendsE>c){map=newHashMap(Math.max((int)(c.size()/.75f)+1,16)
左易
·
2023-10-30 09:49
java
hashset源码解析
【Linux内核
源码剖析
】内核源码的组织结构
文章目录前言一、Linux内核的特征二、为什么要学Linux内核三、Linux操作系统结构1.Linux内核在系统中的位置2.Linux内核子系统之间的关系3.系统主要的数据结构三、Linux内核源码目录组织结构前言如果说CPU是计算机硬件的心脏,那么操作系统的内核就是整个计算机系统的心脏,或者说是最高管理机构。。。一、Linux内核的特征Linux内核组织形式为整体式、开放式结构,也就是说整个内
_索伦
·
2023-10-30 08:43
Linux内核源码剖析
linux
学习
unix
etcd的mvcc
源码剖析
mvcc简介悲观锁在对于一些临界资源进行读写的时候,为了防止其他人进行同步的修改数据,直接将当前的数据锁住,不让别人使用,来实现并发安全乐观锁在对临界资源进行操作的时候,不锁住数据,实现独占,而是判断当前数据是否有被其他人修改过,如果修改了,则修改失败乐观锁是在操作数据之前,先获得数据的版本号或时间戳,然后在提交的时候检查数据的版本号/时间戳是否发生了变化,如果变化了则操作失败,否则就操作成功MV
Zevin~
·
2023-10-30 03:18
etcd
数据库
服务器
muduo
源码剖析
之Buffer缓冲区类
简介Buffer封装了一个可变长的buffer,支持廉价的前插操作,以及内部挪腾操作避免额外申请空间使用vector作为缓冲区(可自动调整扩容)设计图
源码剖析
已经编写好注释buffer.h//Copyright2010
@新法
·
2023-10-29 22:12
muduo源码剖析
网络
c语言
服务器
后端
c++
muduo
缓冲区
muduo
源码剖析
之Acceptor监听类
简介Acceptor类用于创建套接字,设置套接字选项,调用socket()->bind()->listen()->accept()函数,接受连接,然后调用TcpServer设置的connect事件的回调。listen()//在TcpServer::start中调用封装了一个listenfd相关的操作,用于mainLoop成员及属性解析Acceptor-逻辑上的内部类接受器封装,实质上就是对Chan
@新法
·
2023-10-29 22:04
muduo源码剖析
网络
服务器
c语言
后端
linux
muduo
网络编程
STL中的智能指针(Smart Pointer)及其
源码剖析
: std::auto_ptr
STL中的智能指针(SmartPointer)及其
源码剖析
:std::auto_ptrauto_ptr是STL中的智能指针家族的成员之一,它管理由newexpression获得的对象,在auto_ptr
杨领well
·
2023-10-29 08:20
C++
STL
源码
源码
智能指针
对象
管理
源码
STL
STL中的智能指针(Smart Pointer)及其
源码剖析
: std::unique_ptr
STL中的智能指针(SmartPointer)及其
源码剖析
:std::unique_ptr和std::auto_ptr一样,std::unique_ptr也是一种智能指针,它也是通过指针的方式来管理对象资源
杨领well
·
2023-10-29 08:20
C++
STL
源码
源码
智能指针
源码
stl
对象
管理
C++标准模板库type_traits
源码剖析
一、type_traits源码介绍1、type_traits是C++11提供的模板元基础库。2、type_traits可实现在编译期计算。包括添加修饰、萃取、判断查询、类型推导等等功能。3、type_traits提供了编译期的true和false。二、type_traits的作用1、根据不同类型,模板匹配不同版本的算法STL中的Algorithm通过Iterator存取Container内容,Fu
大胡子的艾娃
·
2023-10-29 08:45
C++
Templates
c++
template
tpye_traits
萃取
元编程
上一页
2
3
4
5
6
7
8
9
下一页
按字母分类:
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
其他