04 2016 档案
摘要: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才能提高
阅读全文