select -- 7




200x200


引言服务端程序每一时刻都在经受着大量并发流量的考验,而如今,CPU 指令运行频率的提升已经面临瓶颈,只能通过核心数的增长来大幅提升其指令的执行能力因此,现代程序设计中,并发编程的支持就显得越

#select    #技术贴    #channel    #golang   

200x200


nginx 相对于 apache 的优点轻量级ngxin 相对于 apache 来说,占用资源更少,这是高度模块化设计的优势nginx&nb

#技术帖    #linux    #unix    #apache   
概述epoll 是 linux 内核为处理大批量文件描述符而对 poll 进行的改进版本,是 linux 下多路复用 IO 接口 select/poll 的增强版本,显著提高了程序在大量并发连接中只有少量活跃的情况下的CPU利用率在获取事件时,它无需遍历整个被侦听描述符集,只要遍历被内核 IO 事件异步唤醒而加入 ready 队列的描述符集合就行了epoll 除了提供 select/poll 所提供的 IO 事件的电平触发,还提供了边沿触发,,这样做可以使得用户空间程序有可能缓存 IO 状态,减少 epoll_wait 或 epoll_pwait 的调用,提高程序效率 实现原理当某个进程调用 epoll_create 函数创建 epoll 专用的文件描述符时,Linux 内核会创建一个 eventpoll 结构体变量:struct eventpoll { ... struct rb_root rbr; // 红黑树根节点,存储 epo
#读书笔记    #技术帖    #linux    #unix   
概述pselect 函数是 POSIX 发明,很多系统支持该函数函数原型int pselect (int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, const struct timespec *timeout, const sigset_t *sigmask); 定义于 sys/select.h 中timespec 结构定义于 time.h 中sigset_t 类型定义于 signal.h 中 若有就绪描述符则返回描述符数目,超时返回0,否则返回-1变化pselect 相对于 select 函数有以下两个变化1、时间结构pselect 和 select 函数都有标识超时的参数,但是 pselect 使用的是 POSIX 创造的 timespec 结构struct timespec { time_t tv_sec; long tv_nsec; } 将超时时间精确到纳秒2、信号掩码pselect 函数增加了第六个参
#读书笔记    #技术帖    #network    #unix网络编程   

200x200


概述该函数允许进程指示内核等待多个事件中的任何一个发生或是超时后再唤醒他函数原型int select (int maxfdp1, fd_set *readset, fd_set *writeset,

#读书笔记    #技术帖    #linux    #unix   

200x200


概述考虑一个简单的客户端程序:从标准输入读取数据(fgets),然后发送给服务器,并接收服务器返回的TCP套接字如果当客户端进程阻塞在从标准输入读取数据期间,服务器进程被杀死,那么服务器进程会给客户端

#读书笔记    #技术帖    #linux    #unix   



京ICP备15018585号