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网络库源码剖析
Linux多线程服务端编程:使用muduo C++网络库 学习笔记 第六章
muduo网络库
简介
2010年3月作者写了一篇《学之者生,用之者死——ACE历史与简评》(http://blog.csdn.net/Solstice/archive/2010/03/10/5364096.aspx,ACE是(AdaptiveCommunicationEnvironment)是一个C++编写的开源框架,用于开发高性能、可伸缩、分布式系统的网络应用),其中提到了作者心目中理想的网络库的样子:1.线程安全,
吃着火锅x唱着歌
·
2023-11-01 17:11
C++网络库
linux
c++
网络
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
萃取
元编程
Netty核心
源码剖析
Netty线程模型Netty高并发高性能架构设计精髓主从Reactor线程模型NIO多路复用非阻塞无锁串行化设计思想支持高性能序列化协议零拷贝(直接内存的使用)ByteBuf内存池设计灵活的TCP参数配置能力并发优化无锁串行化设计思想在大多数场景下,并行多线程处理可以提升系统的并发性能。但是,如果对于共享资源的并发访问处理不当,会带来严重的锁竞争,这最终会导致性能的下降。为了尽可能的避免锁竞争带来
Firechou
·
2023-10-29 07:39
#
Netty
netty
源码
1024程序员节特辑:【Spring Boot自动配置原理揭秘】
自动配置原理概述原理SpringBootStarterspring.factories文件@ConditionalOnX注解配置Bean配置属性
源码剖析
复合`Annotation``@EnableAutoConfiguration
家有娇妻张兔兔
·
2023-10-28 21:41
#
Spring
Boot
spring
boot
后端
java
自动配置
源码阅读
嵌入式芯片软件工程师书籍学习路线
编程语言C《CProgrammingLanguage》《CPrimerPlus》《C和指针》《C专家编程》C++《C++Primer》《EffectiveC++》《STL
源码剖析
》C#《C#入门经典》《
小狗工程师
·
2023-10-28 12:26
c语言
c++
c#
Go 接口及其相关机制深入解读加
源码剖析
【Go语言圣经笔记】
接口接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。很多面向对象的语言都有相似的接口概念,但Go语言中接口类型的独特之处在于它是满足隐式实现的。也就是说,我们没有必要对于给定的具体类型定义所有满足的接口类型;简单地拥有一些必需的方法就足够了。这种设计可以让你创建一个新的接口类型满足已经存在的具体类型却
从流域到海域
·
2023-10-28 11:08
GoLang
golang
interface
面向对象
Linux C++ 服务器端这条线怎么走?一年半能做出什么?
添加评论分享按投票排序按时间排序22个回答2453赞同反对,不会显示你的姓名陈硕,LinuxC++程序员,
muduo网络库
作
yazhouren
·
2023-10-28 04:13
CloudServer
Flask
源码剖析
——服务启动篇
【Flask官方文档经典示例】hello.pyfromflaskimportFlaskapp=Flask(__name__)@app.route("/")defhello():return"HelloWorld!"if__name__=="__main__":app.run()输入以下命令启动应用程序:$pythonhello.py*Runningonhttp://127.0.0.1:5000/(
路人甲已病
·
2023-10-28 03:16
redis
源码剖析
| 跳表与压缩列表剖析
压缩列表,跳表的特点a:压缩列表类似于一个数组,不同的是:压缩列表在表头有三个字段zlbytes,zltail和zllen分别表示长度,列表尾的偏移量和列表中的entry的个数,压缩列表尾部还有一个zlend,表示列表结束prev_len,表示前一个entry的长度。prev_len有两种取值情况:1字节或5字节。取值1字节时,表示上一个entry的长度小于254字节。虽然1字节的值能表示的数值范
枷飏
·
2023-10-28 00:56
redis
redis
数据库
数据结构
后端
golang基础数据结构
源码剖析
使用场景:协程通信,任务队列
源码剖析
:1623147385774.jpg如上图可以看出chanel的底层的组成,我们按着源码顺序解读,chanel的工作流程。
春风吹_918b
·
2023-10-27 02:11
Redis
源码剖析
之快速列表(quicklist)
@TOC何为quicklist,上次说到ziplist每次变更的时间复杂度都非常高,因为必须要重新生成一个新的ziplist来作为更新后的list,如果一个list非常大且更新频繁,那就会给redis带来非常大的负担。如何既保留ziplist的空间高效性,又能不让其更新复杂度过高?redis的作者给出的答案就是quicklist。其实说白了就是把ziplist和普通的双向链表结合起来。每个双链表节
xindoo
·
2023-10-27 01:59
c++内存管理第二讲 标准库的::allocator(一)
本文大部分内容转载于STD
源码剖析
并结合个人理解。
朱家小旺
·
2023-10-26 22:28
c++
muduo
源码剖析
之poller/EpollPoller多路复用类
简介poller是I/O多路复用接口抽象虚基类,对I/O多路复用API的封装,muduo提供了EPollPoller和PollPoller派生类(epoll和poll),所以不支持select.newDefaultPoller()默认选择epoll主要接口poll是Poller的核心功能,使用派生类的poll或者epoll_wait来阻塞等待IO事件发生通过派生类的实现来填充EventLoop的a
@新法
·
2023-10-26 20:51
muduo源码剖析
后端
服务器
linux
c语言
c++
muduo
源码剖析
Go sync.Pool 浅析
本篇文章会从使用方式,
源码剖析
,运用场景
煎鱼(EDDYCJY)
·
2023-10-26 08:03
java
python
人工智能
golang
编程语言
PyTorch学习 数据加载(Dataset、DataLoader)模块介绍及源码分析
数据加载(Dataset、DataLoader)模块介绍及源码分析DatasetDataLoaderDataLoader参数DataLoader
源码剖析
RandomSampler
源码剖析
SequentialSampler
YFCodeDream
·
2023-10-25 19:10
PyTorch
pytorch
学习
深度学习
owt-server
源码剖析
(一)--启动流程及相关模块介绍
目录一、引言二、框架------>2.1、模块介绍三、启动流程------>3.1、init-all.sh------>3.2、start-all.sh四、mongo------>4.1、命令行查看数据库内容------>4.2、initdb.js------------>4.2.1、连接到mongo数据库------------>4.2.2、房间信息的生成------------>4.2.3、配
文艺小少年
·
2023-10-25 06:51
rabbitmq
分布式
webrtc
服务器
刷完阿里 P8 架构师 spring 学习笔记 +
源码剖析
,涨薪 8K
文章目录关于Spring的叙述:第一份笔记Spring学习笔记第二份笔记:Spring源码关于Spring的叙述:我之前死磕spring的时候,刷各种资料看的我是一头雾水的,后面从阿里的P8架构师那里拿到这两份资料,从源码到案例详细的讲述了spring的各个细节,是我学Spring的启蒙资料,即便我现在在已经从事Java五六年了,但是每每掏出这份资料看都能再学到点新的知识。还记得当时磕完这份资料,
蒙娜丽莎的Java
·
2023-10-25 05:59
后端
学习路线
java
spring
java
spring
cloud
分布式
架构
muduo网络库
——日志处理
测试程序#include"muduo/base/AsyncLogging.h"#include"muduo/base/Logging.h"#include"muduo/base/Timestamp.h"#include#include#includeoff_tkRollSize=500*1000*1000;muduo::AsyncLogging*g_asyncLog=NULL;//6.回调函数vo
却道天凉_好个秋
·
2023-10-25 02:31
muduo
c++
muduo
log
Muduo日志模块详解
Muduo日志模块解析图片取自
muduo网络库
源码解析(1):多线程异步日志库(上)_李兆龙的技术博客_51CTO博客也是很好的日志讲解博客,这篇讲解流程基本上和它差不多,并且写的比我条理清楚很多AppendFile
小白书舍
·
2023-10-25 02:01
c++
muduo
源码剖析
之EventLoopThread
EventLoop的独立线程主要成员及属性解析意为I/O线程类,EventLoopThread可以创建一个IO线程,通过startLoop返回一个IO线程的loop,threadFunc中开启loop循环,
源码剖析
这个类比较简单
@新法
·
2023-10-25 01:07
muduo源码剖析
1024程序员节
服务器
后端
c++
c语言
linux
muduo
muduo
源码剖析
之EventLoopThreadPool
简介EventLoopThreadPool是EventLoopThread类的线程池类封装了若干个EventLoopThread的线程池,所有者是一个外部的EventLoopEventLoopThreadPool==EventLoopThread+vector主要成员及属性解析通过调用start函数来newEventLoopThread创建对应的线程和其loop,并将创建的保存在vector中源码
@新法
·
2023-10-25 01:57
muduo源码剖析
1024程序员节
linux
服务器
后端
c语言
网络编程
muduo
Linux多线程服务端编程学习(二)如何使用
muduo网络库
Centos7
安装、编译muduo,使用muduo下载、安装编译muduo的过程点击https://blog.csdn.net/YoungSusie/article/details/90021742分类
Muduo网络库
编程学习笔记本文以陈硕老师
YoungSusie
·
2023-10-25 00:48
Muduo
muduo使用
centos7
error
c11
muduo网络库
源码复现笔记(二十四):实现多线程服务器
Muduo网络库
简介muduo是一个基于Reactor模式的现代C++网络库,作者陈硕。它采用非阻塞IO模型,基于事件驱动和回调,原生支持多核多线程,适合编写Linux服务端多线程网络应用程序。
liangximin2046
·
2023-10-25 00:47
muduo
网络
多线程
后端
RocketMQ 过期文件删除机制
源码剖析
1.背景RocketMQ的存储文件主要分三种:CommitLog、ConsumeQueue、IndexFileRocketMQ的过期文件删除机制会定期删除已经过期的存储文件。当磁盘容量告急时,会立刻执行删除,释放磁盘空间。目前虽然有对于RocketMQ过期文件删除机制的文章,但我觉得没有讲的非常完善。本文详细分析一下三种存储文件的过期删除机制,避免一些坑。2.概述CommitLog、Consume
金甲虫Scarb
·
2023-10-24 23:12
RocketMQ
源码解析
分层剖析
RocketMQ
分布式
中间件
rocketmq
Spring循环依赖
源码剖析
Spring循环依赖
源码剖析
一、场景介绍二、整理执行流程总结三、源码分析编写测试类/***测试循环依赖*/@TestpublicvoidtestCyclicDependence(){ApplicationContextapplicationContext
穿城大饼
·
2023-10-24 20:57
开源框架源码剖析
spring
三级缓存
循环依赖
源码分析
集合详解(四)----HashSet和HashMap
源码剖析
(JDK1.7)
HashSetHashMapHashSet当初始化一个HashSet的时候,HashSet的底层实现其实是HashMap:privatetransientHashMapmap;publicHashSet(){map=newHashMapMAXIMUM_CAPACITY)//参数有效性检查initialCapacity=MAXIMUM_CAPACITY;if(loadFactor=initialCa
令仔很忙
·
2023-10-24 05:03
【JAVA】
集合
hashmap
源码
hashset
jdk
k8s-client-go
源码剖析
(二)
简介:云原生社区活动---Kubernetes
源码剖析
第一期第二周本周是K8S源码研习社第一期第二周,学习内容是学习Informer机制,本文以这个课题进行展开。
四颗咖啡豆LanLiang
·
2023-10-24 00:18
CloudNative
Kubernetes
kubernetes
go
源码
k8s
【JUC】AQS
源码剖析
AQS(AbstractQueuedSynchronizer)文章目录AQS(AbstractQueuedSynchronizer)1.概述2.AQS源码分析前置知识2.1AQS的int变量2.2AQS的CLH队列2.3内部类Node(Node类在AQS类内部)2.3小总结3.以ReentrantLock为突破口进行AQS源码分析3.1架构原理3.2lock()方法3.3AQS中的acquire(
比尔高特
·
2023-10-24 00:42
#
03
JUC
java
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他