读书人

关于epoll和消息队列的关联一起讨论

发布时间: 2012-06-06 16:44:11 作者: rapoo

关于epoll和消息队列的关联,一起讨论的进,在线等答案
我对epoll的内部实现不太理解。

消息队列无非就是个链表,send 给它,然后recevie它。

那epoll,是否就是,监听某个地方,比如消息队列,一有消息或者什么,然后就做出处理呢

[解决办法]
epoll使用红黑树索引fd,存储其epoll_event,实际去用一下select,再用一下epoll,看看编程会给你带来什么改变不就好了,差别是很大的,只有你自己去写个服务端就发现了,epoll的精髓在于其struct epoll_event结构体的定义,对实际服务端开发减少了非常多的遍历,从原来的O(n^2)减少到O(n).

C/C++ code
           typedef union epoll_data {               void        *ptr;               int          fd;               uint32_t     u32;               uint64_t     u64;           } epoll_data_t;           struct epoll_event {               uint32_t     events;      /* Epoll events */               epoll_data_t data;        /* User data variable */           }; 

读书人网 >C语言

热点推荐