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

使用boost::asio在处理程序中进行长时间运行的处理,boost,client-server,boost-asio,Boost,Client Server,Boost Asio,我正在设计一个基于boost::asio的网络服务器。我需要在处理程序中执行长时间运行的处理作业,并认为这些处理应该从处理程序转移到单独的线程池中,在那里我可以更好地控制(例如,优先处理任务)。处理程序只是将一个新任务排入作业队列 还将有一个响应队列,在该队列中,响应将退出队列并发送回客户端。(客户端同步发送请求) 我想知道这是否有意义,或者只是错过了什么 简短的回答是肯定的。答案很长,视情况而定。一般来说,如果您想要一个更高的网络,那么您应该最小化处理程序中执行的处理,并将其卸载到线程中。如果

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

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


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

简短的回答是肯定的。答案很长,视情况而定。一般来说,如果您想要一个更高的网络,那么您应该最小化处理程序中执行的处理,并将其卸载到线程中。如果您对接收的数据有因果关系要求,这一点尤其重要,因为
async\u receive
不能保证处理程序的执行顺序