我有一个线程正在等待FIFO上收到的事件。 大多数事件是在同一进程中从另一个线程发送的配置事件。 我希望线程能够通过中断处理程序写入FIFO来处理中断事件吗?
欢迎任何其他建议,而不是使用FIFO!
答案 0 :(得分:0)
是的,它可以。使用中断处理程序是处理异步I / O的新方法之一。
执行此操作的典型方式更多,使用select,poll或Linux epoll命令。
这些可以说是更受欢迎的,因为当事件可用时,您可以处理事件并返回“poll”循环以获取更多事件,而不是“中断”事件。用先前的事件完成。这些机制可以同时等待许多不同的文件描述符,并返回任何可用的文件描述符。
中断处理程序可能不是您想要做的 - 因为您不一定希望在处理一个事件时被中断,以便知道另一个事件已准备就绪。如果你这样做了,你可能最终会将请求排队等待以后处理 - 这正是民意调查和epoll的开始。
如果您使用Linux,“epoll”是最佳选择。如果您不是(或想要POSIX合规性),请使用“民意调查”。 “select”是一种“较旧”的方法,也不会对请求进行排队。