首页 > 其他 > 详细

eventfd

时间:2021-07-29 10:53:35      阅读:20      评论:0      收藏:0      [点我收藏+]

eventfd 在内核版本,2.6.22以后有效。查看内核版本可以用命令 uname -r 。

  • 原型
#include <sys/eventfd.h>
int eventfd(unsigned int initval, int flags);

efd = eventfd(0, 0);
if (efd == -1)
    handle_error("eventfd");
  • 作用

    • eventfd顾名思义就是事件fd类型,就是专门用于事件同志的文件描述符(fd)
    • eventfd 是一个计数相关的fd,计数不为零是有可读事件发生 write 仅仅是加计数,read 是读计数,并且清零
  • eventfd 结合epoll
    eventfd 是专门用来传递事件的 fd ,而 epoll 池则是专门用来管理事件的池子,它们两结合就妙了
    eventfd 可以和 libaio & epoll 一起,实现 Linux 下的纯异步 IO
    ext4 这种文件 fd 一直可读可写,所以实现 poll 毫无意义。eventfd 一直可写,所以监听可写毫无意义;
    eventfd 可以结合业务,做一个事件通知的通信机制,非常巧妙;

eventfd

原文:https://www.cnblogs.com/lodger47/p/15073436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!