(dpdk f-stack)-Nginx使用kqueue
2021/9/27 7:14:07
本文主要是介绍(dpdk f-stack)-Nginx使用kqueue,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概述
kqueue 是 FreeBSD 上的一种的多路复用机制。
它是针对传统的 select/poll 处理大量的文件描述符性能较低效而开发出来的。
注册一堆描述符到 kqueue 以后,当其中的描述符状态发生变化时, kqueue 将一次性通知应用程序哪些描述符可读、可写或出错了。
kqueue APIs
int kqueue(void)
生成一个内核事件队列,返回该队列的文件描述索。其它 API 通过该描述符操作这个 kqueue 。
kevent() 提供三个主要的行为功能。在下面小节中将会用到这两个主要功能。
Ø注册/反注册
注意 kevent() 中的 neventlist 这个输入参数,当将其设为 0 ,且传入合法的 changelist 和 nchangelist ,就会将 changelist 中的事件注册到 kqueue 中。
当关闭某文件描述符时,与之关联的事件会被自动地从 kqueue 移除。
Ø允许/禁止过滤器事件
通过 flags EV_ENABLE 和 EV_DISABLE 使过滤器事件有效或无效。这个功能在利用 EVFILT_WRITE 发送数据时非常有用。
Ø等待事件通知
将 nchangelist 设置成 0 ,当然要传入其它合法的参数,当 kevent 非错误和超时返回时,在 eventlist 和 neventlist 中就保存可用事件集合。
功能: kevent 向内核注册事件,返回就绪事件或错误事件;
int
kevent(int kq, const struct kevent *changelist, int nchanges,
这篇关于(dpdk f-stack)-Nginx使用kqueue的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享