随笔分类 - linux高性能编程
摘要:http://www.ccvita.com/515.html 在一个非阻塞(fcntl)的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 这个错误表示资源暂时不够, 可能read时, 读缓冲区没有数据, 或者,
阅读全文
摘要:使用tornado实现的一个简单http服务器:只需要定义自己的处理方法,其他的东西全部交给tornado完成. 1.socket、bind及listen函数(httpserver中实现) 2.accept函数(httpserver中实现) 3.IOStream IOStream对socket的读写
阅读全文
摘要:fork系统调用 fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1)在父进程中,fork返回新创建子进程的进程ID; 2)在子进程中,fork返回0; 3)如果出现错误,fork返回一个负值; fork出错可能有两种原因: 1)当前的进程数已经达到了系统
阅读全文
摘要:SIGALRM信号:利用该信号的信号处理函数来处理定时任务 基于升序链表的定时器: 利用上述定时器链表来处理非活动连接: 高性能定时器: 1.时间轮 基于排序链表的定时器使用唯一的一条链表来管理所有定时器,插入操作的效率随着定时器数目的增多而降低,时间轮使用hash表的思想,将定时器散列到不同的链表
阅读全文
摘要:http://www.cnblogs.com/ljygoodgoodstudydaydayup/p/3916760.html epoll的相关系统调用: epoll只有epoll_create,epoll_ctl,epoll_wait 3个系统调用 1. int epoll_create(int s
阅读全文
摘要:select系统调用: 在一段时间内,监听用户感兴趣的文件描述符上的可读、可写和异常等事件 Select的函数格式: int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval*time
阅读全文
摘要:I/O模型: 阻塞I/O:针对阻塞I/O执行的系统调用可能因为无法立即完成而被操作系统挂起,直到等待的事件发生为止。针对非阻塞I/O执行的系统调用总是立即返回,而不管事件是否已经发生,如果事件没有立即发生,这些系统调用返回-1,和出错的情况一样。显然只有在事件已经发生的情况下操作非阻塞I/O才能提高
阅读全文
摘要:大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。小端字节序是指整数的高位字节存储在内存的高地址处,低位字节则存储在内存的低地址处。 现代pc大多采用小端字节序,故小端字节序又被称为主机字节序 发送端总是把要发送的数据转化为大端字节序数据后再发送,而接收端知道对方传
阅读全文