感受:
随着深入学习,现代c++给我带来越来越多的惊喜…
c++真的变强大了。
半同步半异步线程池:
其实很好理解,分为三层
同步层:通过IO复用或者其他多线程多进程等不断的将待处理事件添加到队列中,这个过程是同步进行的。
队列层:所有待处理事件都会放到这里。上一层事件放到这里,下一层从这里获取事件
异步层:事先创建好线程,让瞎猜呢和嗯不断的去处理队列层的任务,上层不...
分类:
编程语言 时间:
2015-07-19 10:12:39
阅读次数:
270
由于poll()和select()的局限,2.6内核以上引用了event poll机制(就是说的epoll),虽然比前2个实现复杂得多,epoll解决了它们共有的基本性能问题,并增加了新的特性。 poll()和select()每次调用的时候,都需要所有被监听的文件的描述符。内核必须遍历所有被监...
分类:
其他好文 时间:
2015-07-16 02:04:47
阅读次数:
142
转载:http://blog.csdn.net/jay900323/article/details/18141217Linux五种IO模型性能分析目录(?)[-]概念理解Linux下的五种IO模型阻塞IO模型非阻塞IO模型IO复用模型信号驱动IO异步IO模型个IO模型的比较selectpollepo...
分类:
系统相关 时间:
2015-07-14 15:11:16
阅读次数:
282
1.使用简单:只有4个api函数:epoll_create() epoll_ctl() epoll_wait()个close()
2.支持大规模的socket连接:由于一个socket连接在epoll中是用一个FD(文件描述符)来表示的,所以epoll能支持最大并发连接的数量与linux能打开最大文件数量有关(或者说与内存有关)
3.高效的内存使用策略:
1).当epoll创建的时候,也就是调用epoll_create() 的函数后,会在内核中开辟一定内存空间(和epoll_create()中参数有...
分类:
其他好文 时间:
2015-07-13 12:16:45
阅读次数:
116
测试程序
1 说明STM8S的IO复用用程序代码配置起来比较麻烦,一般是操作flash来操作option byte字节,配置寄存器更加麻烦,可以使用STM 标准外设驱动库来设置。本文使用一种界面配置的方式来配置IO复用管脚,即使用STVP来配置。 2 配置流程【step1】打开STVP软件【step2】打开我们需要下载的xxx.s19文件,CTRL+F5(File->Ram Exec)【step3】...
分类:
其他好文 时间:
2015-07-06 14:17:39
阅读次数:
172
select,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。
...
分类:
系统相关 时间:
2015-07-04 14:00:27
阅读次数:
222
select函数:#include #include #include #include int select(int nfds, fd_set*readfds, fd_set*writefds, fd_set*ex...
分类:
其他好文 时间:
2015-07-02 06:28:32
阅读次数:
228
IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了。Linux中,提供了select、poll、epoll三种接口函数来实现IO复用。
1、select函数
#include
#include
int select(int nfds, fd_set *...
1. Libevent是什么?
Libevent是一个轻量级的开源的高性能的网络库,被众多的开源项目使用,例如大名鼎鼎的memcached等。具有如下的显著的特点:事件驱动,轻量级(和ACE相比的话),跨平台,支持多路的IO复用技术,支持定时器、信号等事件。
2. Libevent功能
Libevent提供了事件通知,io缓存事件,定时器,超时,异步解析dns,事件驱动的ht...
分类:
其他好文 时间:
2015-06-14 18:38:39
阅读次数:
264
一、I/O复用应用场合
1. 当客户处理多个描述符(既有标准输入,又有网络套接字)时,必须使用IO复用。
2. 一个客户同时处理多个套接字是可能的。
3. 如果一个服务器既要处理监听套接字,又要处理已连接套接字,一般就要使用I/O复用。
4. 如果一个服务器既要处理TCP,又要处理UDP,一般就要I/O复用。
5. 如果一个服务器要处理多个服务或协议,就要用到I/O复用。
其实IO复用...
分类:
其他好文 时间:
2015-06-01 14:46:18
阅读次数:
127