从epoll构建muduo-6 加入EventLoop和Epoll

Netty EventLoopGroup 详解:Nio、Epoll、Poll 、KQueueIoUring Netty 是一个高性能的网络通信框架,它使用 EventLoopGroup 来处理 I/O 事件。不同的 EventLoopGroup 实现针对不同的操作系统应用场景优化性能。,并提供了详细的代码示例注释。 阅读详情
epoll构建muduo-1 mini-muduo介绍 前段时间看了陈硕写的muduo网络库(github, 书, blog),觉得这是一个学习网络编程的非常好的素材。为了更好的了解这个库,自己花了点时间,模仿其源码从零开始编写了一个极小的mini-muduo(起这名字没版权问题吧:-)),代码编写过程中有很多收获,我打算写几篇文章记录下心得。有几个问题先说明一下: Q1:网络库很多,为什么选择muduo?     1 库的功能相对完整,基 阅读详情

相关推荐

epoll构建muduo-10 Timer定时器

mini-muduo v0.09版本,实现了Timer定时器。mini-muduo完整可运行的示例可从github下载,使用命令git checkout v0.09可切换到此版本,在线浏览此版本到这里。 这个版本是一个里程碑版本,到这个版本为止,可以说一个单线程的Reactor模式网络库基本成型,程序里的类各司其职,协同完成网络数据的首发。后续版本只是在此基础上增加了多个工作线程(耗费CPU

voidccc的专栏 6304

eventloop 模块总结

事件循环(event loop)就是任务在主线程不断进栈出栈的一个循环过程。任务会在将要执行时进入主线程,在执行完毕后会退出主线程。在Linux中创建一个事件循环(Event Loop)的基本思想就是在程序运行期间保持一个无限运行的循环,这个循环可以监听并响应不同的事件,例如I/O操作,定时器,信号等等。

m0_67700979的博客 259

Muduo网络库——EventLoopThreadPool、EventLoopThread、EventLoop浅析

muduo的并发模型为one loop per thread+ threadpool。 EventLoopThread是事件循环线程,包含一个Thread对象,一个EventLoop对象。在构造函数中,把EventLoopThread::threadFunc 注册到Thread对象中(线程启动时会回调)。 EventLoopThreadPool是事件循环线程池,管理所有客户端连接,每个线程都有唯...

qq_43313035 1023

Event Loop--epoll-协程--理解(生活的案例理解)

Event Loop(事件循环)白话文解释 协程 epoll

hallo world! 744

Netty EpollEventLoopGroup

https://blog.csdn.net/alex_xfboy/article/details/89643638 Java NIO根据操作系统不同,比如macosx是KQueueSelectorProvider、windows有WindowsSelectorProvider、LinuxEPollSelectorProvider或PollSelectorProvider,可见不同的系统对nio...

金溪的博客 2262

快来体验快速通道,netty中epoll传输协议详解

在前面的章节中,我们讲解了kqueue的使用原理,接下来我们再看一下epoll的使用。两者都是更加高级的IO方式,都需要借助native的方法实现,不同的是Kqueue用在mac系统中,而epoll用在liunx系统中。epoll的使用也很简单,我们还是以常用的聊天室为例来讲解epoll的使用。对于server端来说需要创建bossGroupworkerGroup,在NIO中这两个group是NIOEventLoopGroup,在epoll中则需要使用EpollEventLoopGroup: 接着需要将

程序那些事 935

muduoEventLoop

EventLoop.cc就相当于一个reactor,多线程之间的函数调用(用eventfd唤醒),epoll处理,超时队列处理,对channel的处理。运行loop的进程被称为IO线程,EventLoop提供了一些API确保相应函数在IO线程中调用,确保没有用互斥量保护的变量只能在IO线程中使用,也封装了超时队列的基本操作。 EventLoop.h // Copyright...

1万+

muduoEventLoop类源码解析

EventLoop也称为事件循环,从调用epoll_wait系统调用捞取到就绪事件到再次阻塞到epoll_wait上(阻塞到内核中的就绪队列上了)称为一次事件循环。muduo库的EventLoop在捞取完就绪事件后会立即执行就绪事件的回调。EventLoop还有一个线程安全的任务队列。在执行完就绪事件的回调后不会立即阻塞到epoll_wait上,他会在执行完任务队列中的任务后在阻塞到就绪队列上。为什么要搞一个线程安全的任务队列呢?muduo库的设计思想是。

2301_79796701的博客 1516

[muduo网络库]-muduoEventLoop类解析

本贴用于记录库的学习过程,以下是关于EventLoop类的个人理解。EventLoop作为三个核心组件之一,可以说是规定了一条流水线,让该线的所有事件有规律有秩序地执行。

2301_81131022的博客 1076

muduo库的EventLoop类剖析

一:采用的线程通信机制 首先来看一下一个进程(线程)如何通知另一个个等待中的(线程),有三种方法: 1.pipe,使用fd[0] 为读端,fd[1]为写端,半双工。等待线程关注fd[0]的可读事件。 2.socketpair,也有一对文件描述符,可用于双向通信,全双工。 3.eventfd。eventfd是一个比pipe更搞笑的线程间事件通知机制,一方面它比pipe少用一个pipe des

FreeeLinux's blog 3469

epoll构建muduo-13 Reactor + ThreadPool 成型

本版是个里程碑版本,可以通过本版了解多线程是如何通过IO线程读/写网络数据的,在前一个版本v0.12重点介绍了基础知识的前提下,本篇着重分析多线程逻辑里最重要的三个方法EventLoop::runInLoop/EventLoop::queueInLoop/EventLoop::doPendingFunctors。下面逐步介绍本版本修改的细节,三个方法放在最后的EventLoop节。

voidccc的专栏 2941

muduo源码分析---EventLoop

现在暂时记住TcpConnection是TcpServer中Acceptor关注的监听套接字上accept新连接后被初始化的一个对象,接下来分析下EventLoop         这个东西才是真正驱动库的核心,是别的类(EpollPoller Acceptor )帮助他完成了库的功能,看看内部是怎么实现的。 EventLoop:         这个类中最重要的成员就是poller_,这个

鱼思故渊的专栏 2962

[Muduo网络库]:三大核心库Channel类、Poller/EpollPoller类以及EventLoop

除了循环,什么都没做的loop()",这句话的意思并非是loop()只是一个空循环,而是它的主要功能并未通过自身定义的函数实现。loop函数中主要通过调用一次Poller::poll方法它就能给你返回事件监听器的监听结果,然后调用这些Channel里面保管的不同类型事件的处理函数。loop()函数最主要的作用是实现循环,负责驱动“循环”的重要模块。Channel类其实相当于一个文件描述符的保姆!2.2.1 Channel类概述-我在地铁站里吃闸机。

weixin_45807759的博客 1412

muduo源码学习】源码分析之Channel、EventLoopSelector

在本篇本章中,将重点介绍该模型中的IO事件处理部分在 muduo 网络库中是如何实现的。

升级打怪记录 868

Muduo库代码剖析 : EventLoop

EventLoop类似于Reactor模型中的**反应堆**(Reactor)**事件分发器**(Demultiplex)的合并, 其目的在于高效的接收事件, 并正确分配给对应的事件处理器.

tianmu_sama的博客 878

muduo源码剖析】EventLoop设计分析

muduo中事件循环的核心类EventLoop的源码剖析

weixin_46272577的博客 717

muduo网络库学习—EventLoop,Channel,Poller(2)

muduo网络库学习(2) 文章目录muduo网络库学习(2)前言一、oneloop per thread二、EventLoop事件循环流程1.事件循环流程2.读入数据总结 前言 本章主要记录muduo库中的事件循环功能实现即EventLoop类实现。 一、oneloop per thread 为了保证每一个线程只有一个loop循环,muduo在每个线程中创建了一个变量记录EventLoop的指针。 namespace mduo{ namespace net{ // 当前线程EventLoop对象指

qq_41409979的博客 1137

muduoeventloop、channel、fd解析

最近在研究muduo源代码,因为之前的项目内部的逻辑与muduo类似,不过使用的是libevent完成内核的构造,muduo使用了自己写的pollepoll方式完成内部的io复用。之前的项目与muduo使用的策略一致,使用了主线程专门用于接收tcp连接,连接后的connection发送到多个子线程中来支持高并发。 eventloop.h 这个类是muduo的核心,头文件如下(已做注释): ///...

weixin_40021744的博客 600
上一篇: 从epoll构建muduo-5 加入Acceptor和TcpConnection
下一篇: 从epoll构建muduo-7 加入IMuduoUser
voidccc
博客等级 码龄14年 149粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值