
网络编程
Watson2016
游戏,c++,机器视觉,嵌入式,后台开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
select,poll,epoll详解
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2016-11-28 16:01:28 · 368 阅读 · 0 评论 -
同步/异步,阻塞/非阻塞区别
一、同步与异步同步/异步, 它们是消息的通知机制1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数转载 2017-03-22 11:08:57 · 417 阅读 · 0 评论 -
高并发的epoll+多线程
来源:http://blog.chinaunix.net/uid-311680-id-2439721.htmlepoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级。单线程epoll,触发量可达到15000,但是加上业务后,因为大多数业务都与数据库打交道,所以就会存在阻塞的情况,这个时候就必须用多线程来提速。转载 2017-04-12 16:41:58 · 3023 阅读 · 0 评论 -
高并发的epoll+线程池,业务在线程池内
来源:http://blog.chinaunix.net/uid-311680-id-2439722.htmlepoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级。单线程epoll,触发量可达到15000,但是加上业务后,因为大多数业务都与数据库打交道,所以就会存在阻塞的情况,这个时候就必须用多线程来提速。转载 2017-04-12 17:02:21 · 1050 阅读 · 0 评论 -
高并发的epoll+线程池,epoll在线程池内
epoll是linux下高并发服务器的完美方案,因为是基于事件触发的,所以比select快的不只是一个数量级。单线程epoll,触发量可达到15000,但是加上业务后,因为大多数业务都与数据库打交道,所以就会存在阻塞的情况,这个时候就必须用多线程来提速。 epoll在线程池内,测试结果2000个/s增加了网络断线后的无效socket检测。 测试工具:stressmark转载 2017-04-12 20:27:47 · 706 阅读 · 0 评论 -
epoll经验
来源:http://www.cppblog.com/API/archive/2013/07/01/201431.htmlepoll 经验谈1、首先需要一个内存池,目的在于:·减少频繁的分配和释放,提高性能的同时,还能避免内存碎片的问题;·能够存储变长的数据,不要很傻瓜地只能预分配一个最大长度;·基于SLAB算法实现内存池是一个好的思路:分配不同大小的多个块,请求时返回大转载 2017-04-12 21:40:06 · 456 阅读 · 0 评论 -
epoll 的accept , read, write(重要)
epoll 的accept , read, write(重要)在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:* EAGAIN: 再试一次* EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block*转载 2017-04-12 21:51:51 · 804 阅读 · 0 评论