使用boost :: asio在处理程序中长时间运行处理

时间:2011-12-13 15:14:02

标签: boost client-server boost-asio

我正在设计一个基于boost :: asio的网络服务器。我需要在处理程序中执行长时间运行的处理作业,并认为这些处理应该从处理程序移动到单独的线程池,在那里我可以更好地控制(例如,确定任务的优先级)。处理程序只会在作业队列中排队新任务。

还会有一个响应队列,其中响应将被出列并发送回客户端。 (客户端同步发送请求)

我想知道这是否有意义或只是错过了什么。

1 个答案:

答案 0 :(得分:0)

简短回答是的。很长的答案取决于。一般来说,如果你想要一个更高的网络,你应该尽量减少在处理程序中执行的处理并将其卸载到一个线程。如果您对所收到的数据有因果关系要求,这一点尤其重要,因为async_receive不保证处理程序的执行顺序。