【发布时间】:2012-06-16 03:41:51
【问题描述】:
我对@987654322@ 没有多少经验。我有一些非常基本的问题。
我是否需要在不同的thread 下拥有不同的io_service 和不同的socket,但需要一个acceptor,才能在线程服务器中处理客户端?
我相信我必须为新客户使用不同的套接字。但是如果所有线程都使用相同的io_service 会是并行的吗?
我在 asio 部分浏览 http://en.highscore.de/cpp/boost/index.html 这表示我需要在不同的线程中有不同的 io_services 才能实现并行化。
如果我打算创建一个 Server 类,每次在 acceptor.async_accept 中出现新客户端时创建一个 new TCPsession
和TCPSession ctor 创建一个io_service 和一个thread 并在它自己的线程中运行io_service.run() 这会是一个好的设计吗?
但是,在这个设计中,我将在哪里加入所有这些线程?我是否需要另一个io_service 用于main,这样它甚至在获得新客户之前也不会终止?
【问题讨论】:
标签: c++ sockets boost boost-asio boost-thread