在IOCP线程上执行的单向回调方法

本文关键字:回调 方法 执行 IOCP 线程 | 更新日期: 2023-09-27 18:13:50

我似乎在任何地方都找不到一个明确的答案。

在客户端,如果我正在编写代码来处理来自服务器的回调方法,这是IOCP线程执行吗?如果是,我希望我们应该保持回调方法实现的高效和快速。如果需要进行任何阻塞调用,那么将回调响应排队到线程池中是有意义的。

有人能证实/否认我的假设吗?

谢谢。

在IOCP线程上执行的单向回调方法

如果您正在使用IO完成端口作为服务器,(例如:也许在需要模拟1000个客户机的服务器测试系统中,您需要负责提高用户空间线程池以等待完成端口。此池可以足够大以允许许多客户端&因此,避免第二阶段排队到另一个线程池。

如果你正在使用重叠的IO完成回调,回调由发出ReadFileEx的同一个线程执行,(假设你的线程正确地等待一个alertable等待,(blahEx调用),允许APC回调)。如果这个线程正在处理多个客户端,那么是的,这个线程可能会很忙,你应该将缓冲区/套接字/上下文/任何东西排队到一个可以处理缓冲区并发出任何回复的线程池。

据我所知,是的,它在IOCP上。我认为由于服务器本身处于IOCP的中间(因为它正在调用你的回调),并且由于客户端处于IOCP的中间,因此最好尽快离开那里。

我在同一问题的中间,我认为主要回调被用作"事件",通常卸载到UI线程,或不同的工作q