【发布时间】:2011-03-12 10:08:49
【问题描述】:
我正在研究一个 TFTP 实现,它正在从一个复杂的多线程实现过渡到一个使用状态机来跟踪连接的会话状态的单线程/单进程实现。 TFTP 足够简单,并发会话的数量也足够少,除了大量节省代码大小和复杂性之外,对软件实际上没有任何影响。
当然,当其他人连接时,我不能只阻止单个会话。为了解决这个问题,我的第一个想法是 POSIX AIO,尽管经过一些研究我读到它是
- 记录不充分,不完整
- 仅适用于磁盘 I/O 且不支持套接字,或适用于套接字但仅用于读/写 - 不适用于侦听。
此链接 (http://davmac.org/davpage/linux/async-io.html) 中包含一个示例,尽管我也找到了其他示例。 08 年之前的 stackoverflow 帖子 (What is the status of POSIX asynchronous I/O (AIO)?) 中给出了一些额外的观点。
对于 C 开发人员,AIO 是否仍然像人们声称的那样糟糕?人们真的不使用 AIO,而是主要坚持轮询/选择或有限大小的线程池吗?
【问题讨论】:
-
这似乎只是我之前问题的重复。除了“这仍然有效”之外,您还有什么想知道的吗?