【发布时间】:2018-12-03 10:37:21
【问题描述】:
我正在查看来自 boost 站点的示例(用于学习目的):
在 main 中,我添加了几个线程来运行 io_context。
我实现的行为是我有多个线程在套接字上侦听,每个线程都在等待工作并完成整个工作,所以如果我所有的线程都忙于工作并且另一个客户端向服务器发送一些文本,他会挂起,直到某个线程再次可用。
我希望 1 个线程在套接字上侦听并将所有工作排队,并希望有一个线程池来处理所有工作。
如果我理解正确,我不需要在 main 中创建线程池,而是保持原样,只有主线程接受连接并在服务器中使用线程池创建另一个 io_context 并以某种方式使所有会话都使用它池子,我不知道怎么写。
如果我不将它传递给会话,我仍然不明白每个会话如何知道它使用哪个 io_context。
【问题讨论】:
标签: c++ multithreading asynchronous boost boost-asio