我正在从Boost网站看这个示例(出于学习目的):
主要,我添加了几个线程来运行io_context。
我实现的行为是,我有多个线程在套接字上侦听,每个线程等待工作并完成整个工作,因此,如果我所有的线程都在忙于工作,而另一个客户端向服务器发送一些文本,他会挂起,直到某个线程再次可用。
我希望有1个线程在套接字上侦听并将所有工作排队,并希望有一个线程池来处理所有工作。
如果我理解正确,我不需要在main中创建线程池,而是将其保留为仅保留主线程以接受连接,并在服务器中使用线程池创建另一个io_context,并以某种方式使所有会话都使用此线程池池,我不知道该怎么写。
如果我不将每个会话传递给会话,我仍然不了解每个会话如何知道它使用哪个io_context。
答案 0 :(得分:1)
套接字存储一个执行程序。该执行者指的是io_context
。
在较早的Boost版本中,套接字将直接存储对io_service
的引用。