我有一个服务器,boost::asio
我希望使用它来制作多线程。
服务器可以分为几个“区域”,套接字从连接区域开始,然后一旦连接到客户端,就被移动到身份验证区域(即登录或注册),然后在服务器的各个其他部分之间移动,具体取决于关于客户在做什么。
我并不是特别想为所有套接字只使用一个线程池io_service
,因为需要大量的锁,尤其是在与公共资源有大量交互的区域。但是,相反,我想为每个服务器组件(比如身份验证)提供自己的线程。
但是我不确定如何做到这一点。我考虑过为每个组件提供自己的 io_service 的想法,因此它可以使用它想要的任何线程,但是套接字区域绑定到 io_service,我不确定如何将客户端套接字从一个组件移动到另一个组件。