本月博客排行
-
第1名
lerf -
第2名
bosschen -
第3名
paulwong - fantaxy025025
- johnsmith9th
- zysnba
- xiangjie88
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- e_e
- gengyun12
- benladeng5225
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- ganxueyun
- xyuma
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- zxq_2017
- nychen2000
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
Epoll 轮询机制 和libevent的多线程实现
最近需要使用Linux开发,需要在网络连接上复用。原有程序是使用每个请求进行一次创建线程,执行事务,销毁线程,这种模式来实现多个请求。现在希望能够基于线程池实现请求复用。实际上效果应该不会太好,因为:
请求都是内部高速Lan连接
单台服务器请求数不会超过500
属于CPU计算密集型;I/O较少。因此,主要耗时,还是服务本身,平均100ms/每核;假设线程创建销毁1ms,那么这1%即使完 ...
linux AIO libaio和epoll实现非阻塞模型
epoll是Linux内核为处理大批句柄而作改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著的减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。因为它会复用文件描述符集合来传递结果而不是迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一个原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核I ...
epoll介绍【转】
epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.
以一个生活中的例子来解释.
假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.
如果你使用的阻塞IO模型来处理这个问题,那么你就只能一 ...
select epoll
传统的网络编程用select来处理并发访问的问题,但是select随着连接数的增多性能会有明显的下降,同时select所能支持的连接数也有限制,单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32[/size]位的机器上,大小就是32*32,同理64位机器上FD_SETSIZE为32*64)。
而epoll的引入很好的解决了select出现的这 ...
epoll学习笔记
epoll学习笔记
epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知.
以代码来说明问题:
首先给出server的代码,需要说明的是每次accept的连接,加入可读集 ...
如何使用epoll? 一个C语言的简单例子
* How to use epoll? A complete example in C 译文
通常的网络服务器实现, 是对每一个连接使用一个单独的线程或进程。对高性能应用而言,由于需要同时处理非 ...
epoll简化版本
epoll基于socket
先上socket服务端
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#inclu ...
epoll的两种模式
linux异步IO浅析
http://hi.baidu.com/_kouu/blog/item/e225f67b337841f42f73b341.html
epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意 ...
select、poll、epoll的比较
select、poll、epoll的比较
http://my.chinaunix.net/space.php?uid=20196318&do=blog&id=366042
http://blog.endlesscode.com/2010/03/27/select-poll-epoll-intro/
linux提供了select、poll、epoll接口来实现IO复用,三者的原 ...
Epoll,Poll,Select
先说Select: 1.Socket数量限制:该模式可操作的Socket数由FD_SETSIZE决定,内核默认32*32=1024. 2.操作限制:通过遍历FD_SETSIZE个Socket来完成调度,不管哪个Socket是活跃的,都遍历一遍. 后说Poll: 1.Socket数量几乎无限制:该模式下的Socket对应的fd列表由一个数组来保存,大小不限(默认4k). 2.操作限制:同Select. ...
python的select,poll,epoll用法
#!/usr/bin/env python
#coding=utf-8
import os
import fcntl
import select, sys, subprocess
vmstat_pipe = subprocess.Popen('netstat', shell=True, bufsize=1024,
stdout=subprocess.PIPE) ...
linux下epoll如何实现高效处理百万句柄的
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?
先简单回顾下如何使用C库封装的3个epoll系统调用吧。
...
epoll的helloworld
转https://banu.com/blog/2/how-to-use-epoll-a-complete-example-in-c/
说明:介绍来自http://baike.baidu.com/view/1385104.htm
epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它不会复用文件描述符集合 ...
redis 事件处理机制及其它
关于redis的事件处理机制,网上有很详细的源码解析了,基于2.0.4的,URL如下:redis源代码分析8–事件处理(上)
redis源代码分析8–事件处理(中)
redis源代码分析8–事件处理(下)
小总结:
初始化:在redis.c中initServer调用aeCreateEventLoop,并建立了现有唯一的一个time event:serverCron.
使 ...