栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我想同时等待文件描述符和互斥体,推荐的方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我想同时等待文件描述符和互斥体,推荐的方法是什么?

每当使用事件驱动的体系结构时,都需要使用一种机制来报告事件完成。在Linux上,如果一个人正在使用文件,则需要使用select或poll系列中的某个东西,这意味着一个人只能使用管道来启动所有与文件无关的事件。

编辑 :Linux有eventfd和timerfd。可以将它们添加到您的

epoll
列表中,并
epoll_wait
分别从另一个线程触发或在计时器事件上触发。

还有另一种选择,那就是信号。可以使用

fcntl
修改文件描述符,以便在文件描述符变为活动状态时发出信号。信号处理程序然后可以将文件就绪消息推送到您选择的任何类型的队列上。这可能是一个简单的信号量或互斥/
condvar驱动的队列。由于现在不再使用
select
/
poll
,因此不再需要使用管道将基于文件的消息排队。

健康警告:我没有尝试过,尽管我看不出为什么它不起作用,但我真的不知道该

signal
方法的性能含义。

编辑:在信号处理程序中操作互斥锁可能是一个非常糟糕的主意。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376005.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号