gpt4 book ai didi

支持重叠 I/O(用于 IOCP)的计时器?

转载 作者:行者123 更新时间:2023-12-03 12:40:59 25 4
gpt4 key购买 nike

我需要在基于 I/O 完成端口 (IOCP) 的应用程序中添加计时器支持。我想避免使用特定线程来管理计时器。

在 Linux 上,您可以创建一个通过文件描述符传递到期通知的计时器(请参阅 timerfd.h 手册),因此如果您的应用程序基于 epoll,则可以将其与 epoll 一起使用。

在 Windows 上,您可以将“等待计时器”与异步过程调用 (ACP) 一起使用(参见 http://msdn.microsoft.com/en-us/library/ms686898(v=VS.85).aspx)

如果您有兴趣,kqueue (BSD, Mac OS) 默认支持定时器(参见 EVFILT_TIMER)。

对于 I/O 完成端口,我们必须使用支持重叠 I/O 的对象。那么,有没有这样的 IOCP 计时器?

最好的祝福,

塞德里克斯

最佳答案

据我所知,没有计时器在到期时会生成 IOCP 完成。

你可以试试 Windows 定时器队列; CreateTimerQueueTimer .

我最终编写了自己的计时器队列,它确实使用了一个额外的线程来运行计时器,所以它可能对你没有好处:见 here对于我使用 TDD 和完整单元测试实现队列的一系列文章。我正在使用相同的接口(interface)实现更高性能的 TimerWheel,但同样会使用外部线程来管理计时器。

关于支持重叠 I/O(用于 IOCP)的计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com