Linux中的epoll

2020-10-22  本文已影响0人  Wi1ls努力努力再努力

第一次认识epoll机制是在Android中的Handler中的Looper的唤醒和休眠机制,后者是利用Linux提供的epoll完成的。
epoll是Linux独有的机制,属于高并发下的事件驱动,是对于select和poll的性能提升。

//头文件
#include <sys/epoll>

//api
//表示创建一个epoll句柄
int epoll_create(int _size)
//对上述创建的epoll句柄进行操作
int epoll_ctl(int __epoll_fd, int __op, int __fd, struct epoll_event* __event);
//等待处于epoll上被监听的fd产生对应的事件
int epoll_wait(int __epoll_fd, struct epoll_event* __events, int __event_count, int __timeout_ms);

//以下是linux-4.12下的源码

//./include/uapi/linux/eventpoll.h
struct epoll_event {
  __u32 events;
  __u64 data;
} EPOLL_PACKED
上一篇下一篇

猜你喜欢

热点阅读