八、统一定时器事件和信号事件详解
和信号事件相比,把定时器事件和I/O事件统一起来就变得十分容易了,为什么?因为I/O复用机制如select(),poll(),epoll_wait()都允许设置一个最大等待时间^_^。So,让我们来看看libevent是怎样做的吧。PS:实际上很多事件驱动的软件都是这样做的。
1.实现方法
核心就是在每次事件循环中设置I/O复...
分类:
其他好文 时间:
2016-06-22 00:26:53
阅读次数:
164
Unix下可用的I/O模型一共有五种:阻塞I/O 、非阻塞I/O 、I/O复用 、信号驱动I/O 、异步I/O。此处我们主要介绍第三种I/O符复用。
I/O复用的功能:如果一个或多个I/O条件满足(输入已准备好读,或者描述字可以承接更多输出)时,我们就被通知到。这就是有select、poll、epoll实现。I/O复用应用场合:
1、当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使...
分类:
其他好文 时间:
2016-06-21 07:59:43
阅读次数:
231
I/O复用是Linux中的I/O模型之一。所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞。 在Linux中,提供了select、poll、epoll三类接口来实现I/O复用。 select函数接口 sel ...
分类:
系统相关 时间:
2016-06-20 22:15:54
阅读次数:
321
以下注释均为测试,可忽略绿色为文件,蓝色为目录main.c#include"httpd.h"
void*thread_run(void*arg)
{
intsock=(int)arg;
accept_request(sock);
printf("oneacceptfinshed...\n");
}
intmain(intargc,char*argv[])
{
if(argc!=3){
usage(argv[0]);
return1;
}
intport=at..
分类:
编程语言 时间:
2016-06-20 00:58:09
阅读次数:
526
多路复用之epoll作为多路复用中最高效的I/O,epoll有着select和poll都不具有的很多能力。不同于poll和select,epoll它用三个函数来实现多路复用这一个功能。#include<sys/epoll.h>
intepoll_create(intsize);
//用于创建一个epoll模式的存储空间,返回值是一个文件描述符..
分类:
其他好文 时间:
2016-06-19 18:43:26
阅读次数:
262
//http.h
#pragmaonce
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/sendfile.h>
#include<sys/stat.h>
#include<sys/epoll.h>
#include<unistd...
分类:
数据库 时间:
2016-06-19 18:39:39
阅读次数:
218
//http.h
#pragmaonce
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/sendfile.h>
#include<sys/stat.h>
#include<sys/epoll.h>
#include<unistd...
分类:
Web程序 时间:
2016-06-18 01:39:53
阅读次数:
280
1、alarm 只发出一种信号给自己2、setitimer 可以发出3种信号给自己,3、timerfd 这个接口基于文件描述符,通过文件描述符类似epoll那种的可读事件进行超时通知,能够被用于select/epoll/poll的应用场景,linux内核2.6.25版本及以上版本使用4、利用服务器w ...
分类:
系统相关 时间:
2016-06-17 15:34:40
阅读次数:
220
转载来自:http://blog.csdn.net/mango_song/article/details/42643971 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。 不管是文件,还是套接字,还是管道,我们都可以把他们看作流。 之后我们来讨论I ...
分类:
其他好文 时间:
2016-06-16 21:42:37
阅读次数:
113
本文介绍了Linux环境下网络编程最简单的模型以及测试客户端怎么编写。...
分类:
其他好文 时间:
2016-06-15 06:58:49
阅读次数:
267