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源码分析】 Muduo源码分析系列总览
本系列主要是分析
Muduo网络库
的执行流程,让大家有一个大致的认识。网络库主要是完成对三个半事件的关注。
hello_ape
·
2020-08-14 17:53
Muduo
Flask
源码剖析
(六):响应是怎么实现的
前言接着此前Flask
源码剖析
系列,这次来看看Flask是怎么样生成响应的。
二两hackpython
·
2020-08-14 17:56
Python
语言开发
后端开发
Python定时任务框架:APScheduler
源码剖析
(二)
前言在上一篇文章中,简单的捋了一遍使用BackgroundScheduler调度器做定时任务的流程,本篇接着上一篇文章,分析一下_real_add_job方法和_main_loop方法。虽然APScheduler有多种不同的调度器以及多种不同的使用方式,但其核心都是类似的,一通百通。对了,文中分析的APScheduler是当前最新版3.6.1。剖析_real_add_job回顾一下上篇文章添加任务
二两hackpython
·
2020-08-14 17:56
Python
语言开发
后端开发
muduo网络库
源码阅读Step by Step
一般写服务端程序都需要有一个称手的网络库来帮我们处理琐碎的网络通信细节,比如连接的建立、关闭,读取数据,发送数据,接收、发送缓冲区的管理等,常用的C/C++网络库有libevent,asio,libev,我们项目组使用的是
muduo
eyucham
·
2020-08-14 17:16
muduo
Muduo网络库
源码剖析
| 线程池 ThreadPool的设计与实现
文章目录ThreadPool.hThreadPool.cc线程池本质就是一个生产者-消费者模型,它维护一个线程队列和任务队列。一旦任务队列当中有任务,相当于生产者生产了东西,就唤醒线程队列中的线程来执行这些任务。那么,这些线程就相当于消费者线程。Muduo库的线程数目属于启动时配置,当线程池启动时,线程数目就已经固定下来。由于Muduo库是基于对象编程的设计理念,所以Muduo库的任务队列中存放的
ZY-JIMMY
·
2020-08-14 16:50
C++程序设计
Muduo网络库
源码分析之对socket及其相关操作的封装
主要涉及到的类和实现文件有:Endian.h提供了字节序转换的函数。Socket.h/Socket.ccsocketfd的封装,提供了绑定地址、开始listen、接受连接等操作,并可设置套接字选项。InetAddress.h/InetAddress.cc套接字地址的封装,提供了多种方式初始化一个地址,还提供方法从地址中拿到ip和port。SocketsOps.h/SocketsOps.cc封装了s
Tanswer_
·
2020-08-14 16:51
Linux网络编程
Muduo网络库源码分析
muduo
socket
inetaddr
字节序转换
socket相关操作
muduo网络库
学习之muduo_http 库涉及到的类
1、httprequest:requestline+header+body(header分为普通报头,请求报头与实体报头)header与body之间有一空行(CRLF)请求方法有:Get,Post,Head,Put,Delete等协议版本1.0、1.1常用请求头Accept:浏览器可接受的媒体(MIME)类型;Accept-Language:浏览器所希望的语言种类Accept-Encoding:浏
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之muduo_inspect 库涉及到的类
muduoinspect库通过HTTP方式为服务器提供监控接口,现在只实现进程相关信息的监控,通过成员ProcessInspector实现。ProcessInspector//通过ProcessInfo返回进程信息ProcessInfo//获取进程相关信息我们可以参照ProcessInspector实现一个如TcpStateInspector,作为Inspector的成员,这样就可以实现对Tcp连
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之EventLoop(四):EventLoopThread 类、EventLoopThreadPool 类
1、EventLoopThread(IO线程类)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程IO线程不一定是主线程muduo并发模型oneloopperthread+threadpool(计算线程池)为了方便今后使用,定义了EventLoopThread类,该类封装了IO线程EventLoopThread创建了一个线程在线程函数中创建了一个EvenLoop对象并调用Event
s1mba
·
2020-08-14 16:10
muduo网络库学习
muduo网络库
学习之Logger类、LogStream类、LogFile类封装中的知识点
一、Logger类、LogStream类1、日志作用开发过程中:调试错误更好的理解程序运行过程中:诊断系统故障并处理记录系统运行状态2、日志级别TRACE指出比DEBUG粒度更细的一些信息事件(开发过程中使用)DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的。(开发过程中使用)INFO表明消息在粗粒度级别上突出强调应用程序的运行过程。WARN系统能正常运行,但可能会出现潜在错误的情形。ER
s1mba
·
2020-08-14 16:09
muduo网络库学习
Muduo网络库
源码分析(五)Acceptor和TcpServer类
首先,我们先提一下对Socket的封装(不复杂,所以简单说一下)。Endian.h:封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。SocketsOps.h/SocketsOps.cc:封装了socket相关系统调用。Socket.h/Socket.cc(Socket类):用RAII方法封装socketfiledescriptor。InetAddress.h
NK_test
·
2020-08-14 16:58
Linux基础及编程
Muduo源码分析
muduo网络库
学习笔记(3):Thread类
muduo网络库
采用了基于对象的编程思想来封装线程类。类图如下:变量numCreated_表示创建的线程个数,类型为AtomicInt32,用到了我们上篇所说的原子性操作。
li27z
·
2020-08-14 16:37
muduo
muduo网络库
学习笔记(0):面向对象编程风格和基于对象编程风格的比较
我们通过对一个线程类的封装来比较这二者的不同。面向对象编程风格使用面向对象编程风格封装线程类,一般这么做:写一个Threadbaseclass,含有(纯)虚函数Thread::run(),然后应用程序派生一个derivedclass,覆写run()。程序里的每一种线程对应一个Thread的派生类。类图如下:代码如下:文件名:Thread.h--头文件#ifndef_THREAD_H_#define
li27z
·
2020-08-14 16:37
C/C++
muduo
muduo网络库
学习笔记(8):高效日志类的封装
前言在服务端编程中,日志是必不可少的。开发过程中,日志的存在能方便我们调试错误和更好地理解程序;运行过程中,日志能帮助我们诊断系统故障并处理、记录系统运行状态。muduo日志类封装细节(1)日志消息有多种级别(level),如TRACE、DEBUG、INFO、WARN、ERROR、FATAL。日志的输出级别在运行时可调。代码片段1:返回当前日志级别文件名:Logging.ccLogger::Log
li27z
·
2020-08-14 16:37
muduo
muduo网络库
学习笔记(6):单例类(线程安全的)
muduo用pthread_once实现了线程安全的Singleton。文件名:Singleton.htemplateclassSingleton:boost::noncopyable{public:staticT&instance(){pthread_once(&ponce_,&Singleton::init);return*value_;}private:Singleton();~Single
li27z
·
2020-08-14 16:06
muduo
(第6章)
muduo网络库
文章目录1.muduo2.线程模型3.TCP网络编程本质1.muduomuduo是基于Reactor模式的网络库,核心是:事件循环EventLoop,用于相应计时器和IO事件muduo采用基于对象object-based,而非面向对象object-oriented的设计风格muduo的核心是:每个IO线程一个事件循环,把IO事件分发到回调函数上2.线程模型muduo的线程模型是:onelooppe
简单生活,简单爱
·
2020-08-14 15:27
开源代码学习
发布一个基于 Reactor 模式的 C++ 网络库
发布一个基于Reactor模式的C++网络库陈硕(giantchen_AT_gmail)Blog.csdn.net/Solstice2010Aug30本文主要介绍
muduo网络库
的使用。
陈硕
·
2020-08-14 15:48
muduo
c++
多线程
muduo网络库
——实现Boost.Asio聊天服务器:完整代码+注释
聊天服务一个服务端进程可以同时服务多个客户端,客户端接受键盘输入,以回车为界把消息发送给服务端,服务端收到消息之后,依次发送给每个连接到它的客户端,原来发送消息的客户端进程也会收到这条消息。消息格式每条消息有一个4字节头部,以网络序存放字节序长度。比如两条消息“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网络库
源码剖析
| 事件循环线程EventLoopThread和EventLoopThreadPool类
文章目录EventLoopThread类剖析(事件循环线程类)EventLoopThreadPool剖析(事件驱动循环线程池类)EventLoopThread类剖析(事件循环线程类)Muduo的并发模型为oneloopperthread+threadpool(计算线程池),为了方便今后使用,定义了EventLoopThread类,该类封装了I/O线程。EventLoopThread创建了一个线程,
ZY-JIMMY
·
2020-08-14 15:40
C++程序设计
Muduo网络库
源码分析(四)EventLoopThread和EventLoopThreadPool的封装
muduo的并发模型为oneloopperthread+threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。所以这篇博文并没有涉及到新鲜的技术,但是也有一些封装和逻辑方面的注意点需要我们去分析和理解。EventLoopThread任何
NK_test
·
2020-08-14 15:31
Linux基础及编程
Muduo源码分析
muduo网络库
源码学习————线程安全
线程安全使用单例模式,保证了每次只创建单个对象,代码如下:Singleton.h//UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////Author:ShuoChen(chenshuoatchenshuodotcom)//线程安全#ifndefMUDUO_BASE_SINGLETO
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo网络库
源码学习————条件变量
muduo里的CountDownLatch类实际上是对条件变量condition进行的封装,既可以用于所有子线程等待主线程发起“起跑”,也可以用于主线程等待子线程初始化完毕才开始工作。condition.h代码如下://UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////Autho
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo网络库
源码学习————日志滚动
muduo库里面的实现日志滚动有两种条件,一种是日志文件大小达到预设值,另一种是时间到达超过当天。滚动日志类的文件是LogFile.cc,LogFile.h代码如下:LogFile.cc#include#include//strerror_tl#include#include#include#includeusingnamespacemuduo;//LogFile里面嵌套的File类//notth
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
muduo网络库
源码学习————线程类
muduo库里面的线程类是使用基于对象的编程思想,源码目录为muduo/base,如下所示:线程类头文件://UseofthissourcecodeisgovernedbyaBSD-stylelicense//thatcanbefoundintheLicensefile.////Author:ShuoChen(chenshuoatchenshuodotcom)//线程类#ifndefMUDUO_B
缱绻的西格玛
·
2020-08-14 15:56
muduo库源码学习
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,索性就写几篇博客分析下muduo这款网络库的源码,其实已经有不少人分析过该库,我在这里仅仅谈我的个人对该库设计、用法的一些理解,不对或者不准确的地方还请指出,有一些地方会直接引用陈硕老师的
苏州-青蛙
·
2020-08-14 14:43
c++
服务器
STL
源码剖析
笔记
在STL中,迭代器使得容器与算法分离开来,迭代器会定义五种类型。Hash_table是一种数据结构,和RB_tree类似。其中set、map、multi_set、multi_map都是基于RB_tree。在STL中,patial_sort()和nth_element()不一样。patial_sort是的作用是对前n个元素进行排序,这个算法维持一个n个元素的堆,对这个堆进行维护。如果是对前n个升序排
mcfer
·
2020-08-14 10:03
spring Quartz 源码分析--触发器类CronTriggerBean
源码剖析
前面我们讲到了Quartz框架在项目中的实现,在Quartz中的重要API有两个重要的触发器类:CronTrigger和SimpleTrigger在Quartz框架中这两个触发器都继承了一个抽象基类Trigger,这个类有触发器共有的属性name,jobName,group,jobGroup以及description;但是在spring框架中使用的触发器类是org.springframework.
jack_wang001
·
2020-08-14 07:09
java工具源码剖析
k8s代码走读---kube-controller-manager
这几天也看了《kubernetes
源码剖析
》的前两章,这本书还是不错的,推荐大家阅读。前面两章主要讲解什么是kubernets,它的来历,它的架构,它的代码结构,以及它的编译过程。
七度黑光
·
2020-08-14 04:46
PhotoView开源项目剖析
功能特性支持放缩超出边界,多点触控和双击事件滚动和滑动和ViewPager等能完美兼容矩阵变化等有回调,方便前台其他展示的改变单击,长按都有回调提醒
源码剖析
那么怎么来学习他的源码呢,我们从以下几个部分来说
吴佳峻
·
2020-08-14 04:57
Android应用开源项目解读
Android开源项目解读
《python
源码剖析
》笔记 python多线程机制
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie1.GIL与线程调度Python中的线程是操作系统的原生线程,Python虚拟机使用一个全局解释器锁(GlobalInterpreterLock)来互斥线程对Python虚拟机的使用为了支持多线程机制,一个基本的要求就是需要实现不同线程对共享资源访问的互斥,所以引入了GIL。GIL:在一个线程
senliezheng
·
2020-08-14 00:51
Python
C/C++/STL
Python专栏
泛读《STL
源码剖析
》第二章:空间配置器
目录目录目录目录前言SGI特殊空间配置器,std::alloc构造和析构基本工具:construct()与destroy()std::alloc空间的配置与释放一级配置器:二级配置器:空间配置函数allocate()空间释放函数deallocate()重新填充freelists:refill()函数内存池内存基本处理工具①uninitialized_copy②uninitialized_fill③
z-k
·
2020-08-13 21:27
《STL源码剖析》
STL源码分析读书笔记--第二章--空间配置器(allocator)
声明:侯捷先生的STL
源码剖析
第二章个人感觉讲得蛮乱的,而且跟第三章有关,建议看完第三章再看第二章,网上有人上传了一篇读书笔记,觉得这个读书笔记的内容和编排还不错,我的这篇总结基本就延续了该读书笔记的框架
weixin_33743703
·
2020-08-13 21:30
c/c++
数据结构与算法
重读STL
源码剖析
:析构
纯虚析构函数理论上来说,将一个函数声明为纯虚函数后,这个类即变为抽象类。纯虚函数只提供接口,而不提供实现,但纯虚析构函数一定要提供定义。这是由C++特性决定的,编译器对派生类的析构函数会进行扩展,以静态调用的方式调用其每一个虚基类和上基类的析构函数,尽管是一个抽象类,但仍然要为这个纯虚析构提供实现,即使是awov::~awov(){}这样没有任何操作的实现,因为如果不提供,将导致链接失败虚函数与内
weixin_30918415
·
2020-08-13 21:35
Android
源码剖析
之Framework层实战版(Ams管理Activity启动)
本文来自http://blog.csdn.net/liuxian13183/,引用必须注明出处!讲到实战,就不得不拿两个例子来说明,本篇想拿的是应用最广泛的两个:Ams和Wms,一个管理activity,一个管理窗口,而前面我们已经讲了不少,本篇不再赘述。关于Ams对activity的管理,无非这几个方面:启动哪个activity、物理按键对activity处理、内存骤减时activity的回收规
weixin_30314813
·
2020-08-13 20:42
【STL
源码剖析
】第二章 空间配置器(allocator)
第二章空间配置器(allocator)具备次配置力(sub-allocation)的SGI空间配置器SGI标准的空间配置器SGI定义了一个符合部分标准,名为allocator的配置器,效率不高,只把c++的::operatornew和::operatordelete做了一层薄薄的包装,SGI没有用过。SGI特殊的空间配置器,std::allocallocator只是基层内存配置/释放行为(也就是:
stt2019
·
2020-08-13 19:58
STL源码剖析
SSD pytorch
源码剖析
(不包含模型搭建及训练、测试)及训练方法剖析
参考代码:https://github.com/amdegroot/ssd.pytorchhttps://github.com/acm5656/ssd_pytorchimportConfigfromitertoolsimportproductasproductfrommathimportsqrtassqrtimporttorch#获取先验框defdefault_prior_box():mean_l
小伟db
·
2020-08-13 17:13
STL
源码剖析
_读书笔记:第二章 空间配置器 内存池篇
空间配置器:作用:帮助容器配置空间存放信息SGI空间配置器标准空间配置器allocator:效率不好,只对::operatornew和::operatordelete做一层封装特殊空间配置器alloc:将new算式分为两阶段:用::operator配置内存,构造对象;将delet算式分为两阶段:析构对象,用::operatordelete释放内存特殊空间配置器内存配置:allocate(),判断区
天地一扁舟
·
2020-08-13 16:40
STL
源码剖析
_读书笔记:第一章 STL概论和版本简介
第一章:前言:最近想深究一下STL的源码,主要是以前只知道对容器,迭代器,算法,函数对象等怎么使用,但却对其内部机制不甚了解。老话说得好:我们用交通工具,不是因为我们不会走路,而是我们会走路,有复用的工具在那里,因此可以使用。不仅要会用车轮,也要知道车轮内部是怎么工作的。闲话少叙,进入正题吧。正文:第一章主要从宏观角度介绍了STL的六大组件。1)六大组件作用:容器:存放数据的迭代器:遍历容器的指针
天地一扁舟
·
2020-08-13 16:39
STL
源码剖析
_读书笔记:第二章 空间配置器 构建简单的空间配置器篇
空间配置器:作用:帮助容器配置空间存放信息SGI空间配置器标准空间配置器allocator:效率不好,只对::operatornew和::operatordelete做一层封装特殊空间配置器alloc:将new算式分为两阶段:用::operator配置内存,构造对象;将delet算式分为两阶段:析构对象,用::operatordelete释放内存特殊空间配置器内存配置:allocate(),判断区
天地一扁舟
·
2020-08-13 16:39
STL 之 multiset
源码剖析
G++2.91.57,cygnus\cygwin-b20\include\g++\stl_multiset.h完整列表/***Copyright(c)1994*Hewlett-PackardCompany**Permissiontouse,copy,modify,distributeandsellthissoftware*anditsdocumentationforanypurposeishere
hustyangju
·
2020-08-13 14:34
STL
《STL
源码剖析
》读书笔记---第4章 序列式容器
序列式容器:array(build-in)、vector、heap(以算法形式呈现)、priority-queue、list、slist(非标准)、deque、stack(配接器)、queue(配接器)所谓序列式容器,其中的元素都可序,但是未必有序。---------------------------------------------------------------------------
劉俊
·
2020-08-13 14:06
STL
读书笔记
C/C++
多线程学习(三)---Thread源码解读
参考文章:Thread
源码剖析
多线程全面详解总结Java多线程之interrupt()的深度研究jdk版本:1.8.0_2011.线程名我们在使用多线程的时候,想要查看线程名是很简单的,调用Thread.currentThread
一个胖子IT男
·
2020-08-13 12:17
多线程
STL
源码剖析
笔记一空间配置器
今天终于开始了计划很久的看STL源码,过程应该很艰巨,我争取书博客各看一遍,为了防止看了就忘,准备做好笔记,在5天内看完。加油!一、空间配置器allocator1.1简介整个STL的操作对象都存放在容器中,而容器一定需要配置空间置放资料。空间不一定是内存,也可以是磁盘或其他辅助媒介。C++的内存配置操作和释放操作一般是这样:classfoo{...}foo*pf=newfoo;//配置内存,然后构
爱吃肉的糖醋排骨
·
2020-08-13 12:16
STL源码剖析笔记
一起来读书102- stl
源码剖析
:第二章 空间配置器
文件结构:allocator必须定义于:包含以下头文件定义::定义全局函数construct()和destroy(),负责对象的构造和析构:定义一,二级allocator;配置器名为alloc:定义了一些全局函数用来填充和赋值大块内存数据,实现STL标准规范:un_initialized_copy(),un_initialized_fill(),un_initialized_fill_n()空间的
狍子科技-贺汉景
·
2020-08-13 10:34
一起来读书
源码剖析
Springboot自定义异常
博主看到新服务是封装的自定义异常,准备入手剖析一下,自定义的异常是如何进行抓住我们请求的方法的异常,并进行封装返回到。废话不多说,先看看如何才能实现封装异常,先来一个示例:1@ControllerAdvice2publicclassTstExceptionHandle{34@ExceptionHandler(Exception.class)5publicvoidmyExceptionHandle(
努力的小雨
·
2020-08-13 08:00
源码剖析
Springboot自定义异常
博主看到新服务是封装的自定义异常,准备入手剖析一下,自定义的异常是如何进行抓住我们请求的方法的异常,并进行封装返回到。废话不多说,先看看如何才能实现封装异常,先来一个示例:1@ControllerAdvice2publicclassTstExceptionHandle{34@ExceptionHandler(Exception.class)5publicvoidmyExceptionHandle(
努力的小雨
·
2020-08-13 08:00
Vue 2.6
源码剖析
-响应式原理学习 - 1.起手
学习目标Vue.js的静态成员和实例成员初始化过程静态成员如:Vue.use、Vue.set、Vue.nextTick实例成员如:vm.el、vm.el、vm.el、vm.set、vm.$mount首次渲染的过程数据响应式原理准备工作获取源码项目地址:https://github.com/vuejs/vueFork一份到自己的仓库,克隆到本地,可以自己写注释提交到github注意提交的时候要按照规
皮蛋很白
·
2020-08-12 19:50
#
Vue2.6
源码剖析
SpringCloud组件 &
源码剖析
:Eureka服务注册方式流程全面分析
在SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?文章中我们讲到了服务注册的几种注册方式,那么这几种注册方式的源码是怎么实现的呢?我们带着这一个疑问来阅读本章内容能够让你更深入了解这块的知识点!!!本章目标分析每一种服务注册方式源码执行流程。构建项目本章以分析源码为主,所以不去新创建项目来讲解相关内容,我们使用SpringCloud组件:Eureka服务注册是采用主机名还
恒宇少年
·
2020-08-12 16:24
上一页
33
34
35
36
37
38
39
40
下一页
按字母分类:
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
其他