事出有因为何选择eventloop?EventLoop是一种推进无阻塞I/O(网络、文件或跨进程通讯)的软件模式。传统的阻塞编程也是用一样的方式,通过function来调用I/O。但进程会在该I/O操作结束前卡住不动,下面的这段伪代码可以演示阻塞I/O的情况:var post = db.query(...
分类:
Web程序 时间:
2015-01-12 22:25:26
阅读次数:
332
#include using namespace std;class GtkSystem{public: void Init(int argc, char** argv); int EventLoop() { coutEventLoop();}void GuiFacade::Logger...
分类:
其他好文 时间:
2014-12-10 10:32:19
阅读次数:
153
分为几个模块 EventLoop、TcpServer、Acceptor、TcpConnection、Channel等
对于EventLoop来说:
他只关注里面的主驱动力,EventLoop中只关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的所有Channel,这个loop属于哪一个Server.
几个类存在的意义:
从应用层使用的角度...
分类:
其他好文 时间:
2014-10-30 00:27:40
阅读次数:
325
转自:http://blog.csdn.net/mjp_mjp/article/details/44060591、多线程中的ACE_Reactor::EventLoop,当在多线程(池)中调用EventLoop时,需要注意,在Acceptor/EventHandler中要使用其中的方法Reactor...
分类:
其他好文 时间:
2014-09-26 01:03:48
阅读次数:
259
这个系列通过七篇文章,结合Netty5的原代码
1. 分析了服务器绑定端口的过程,从整体上可以看到Netty执行的流程和主要组件
2. 分析了Netty的线程模型,解析了Reactor模式。很多人都不理解这块,被EventLoop的名称和复杂的类层次所迷惑
3. 通过比较使用Java原生的NIO API来编程的流程,再分析了Netty是如何把这些基本流程封装地,进一步地理清了Netty的封装...
分类:
Web程序 时间:
2014-09-23 12:28:14
阅读次数:
226
今天在看redis源码的时候发现这样的一种函数定义方法,就是将函数作为类型来定义,然后在结构体当中使用 typedef void aeFileProc(struct aeEventLoop *eventLoop, int fd, void *clientData, int mask); typ...
分类:
其他好文 时间:
2014-09-10 13:55:30
阅读次数:
259
Node.js确实有一个扩展,叫tagg,可以实现多线程。但实际上是这样的,它的这个多线程只是一个线程池,去执行一部分计算的任务。 EventLoop和IO的处理部分始终是单线程的,在任务线程中不能调用异步接口,只能计算...
分类:
编程语言 时间:
2014-07-22 08:34:33
阅读次数:
201
本版是个里程碑版本,可以通过本版了解多线程是如何通过IO线程读/写网络数据的,在前一个版本v0.12重点介绍了基础知识的前提下,本篇着重分析多线程逻辑里最重要的三个方法EventLoop::runInLoop/EventLoop::queueInLoop/EventLoop::doPendingFunctors。下面逐步介绍本版本修改的细节,三个方法放在最后的EventLoop节。...
分类:
其他好文 时间:
2014-06-30 00:54:45
阅读次数:
294
eventloop 用作 non-blockingIO 和定时器。threadpool
用来做计算,具体可以是任务队列或消费者-生产者队列任务对列,生产消费者 线程池TaskQueue、Producer-Consumer Queue、
CountDownLatchPTHREAD_MUTEX_ERRO...
分类:
其他好文 时间:
2014-05-08 10:09:52
阅读次数:
241