2012年7月4日

I/O多路复用技术详解之epoll模型

摘要: epoll的优点:1.支持一个进程打开大数目的socket描述符(FD) select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一是可以选择修改这个宏然后重新编译内核,不过资料也同时指出这样会带来网络效率的下降,二是可以选择多进程的解决方案(传统的 Apache方案),不过虽然linux上面创建进程的代价比较小,但仍旧是不可忽视的,加上进程间数据同步远比不上线程间同步的高效,所以也不是一种完美的方案。不过 epoll则没有这个限制,它所支持的FD上限是最大可以打开文件的数目 阅读全文

posted @ 2012-07-04 22:01 java课程设计 阅读(1136) 评论(0) 推荐(0) 编辑

I/O多路复用技术详解之poll模型

摘要: poll模型poll()系统调用是System V的多元I/O解决方案。它解决了select()的几个不足,尽管select()仍然经常使用(多数还是出于习惯,或者打着可移植的名义):#include <sys/poll.h>int poll (struct pollfd *fds, unsigned int nfds, int timeout); 和select()不一样,poll()没有使用低效的三个基于位的文件描述符set,而是采用了一个单独的结构体pollfd数组,由fds指针指向这个组。pollfd结构体定义如下:#include <sys/poll.h>st 阅读全文

posted @ 2012-07-04 21:59 java课程设计 阅读(394) 评论(0) 推荐(0) 编辑

I/O多路复用技术详解之select模型

摘要: select模型select()系统调用提供一个机制来实现同步多元I/O:#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);FD_CLR(int fd, fd_set *set);FD_ISSET(int fd, fd_set *set);FD_SET(int fd, fd_set *set);FD_ 阅读全文

posted @ 2012-07-04 21:57 java课程设计 阅读(777) 评论(0) 推荐(0) 编辑

导航