我正在使用boost-asio在c++中的多线程服务器上工作。目前,我遇到一个设计问题,涉及擦除连接。

我有一个服务器实例,其中包含一个连接对象 vector 。这些连接接收我解析的命令。一个命令特别处理将数据发送到我的 bootstrap 中的所有连接。

现在,当连接断开时,我当前正在从引导中擦除此连接并调用析构函数。似乎有人“SendAll”同时有人“断开”时,我会遇到问题。

谁能推荐一个更好的设计或只是向我指出正确的方向?任何帮助,不胜感激。谢谢

最佳答案

无论什么类维护此连接 vector ,都需要一个strand。访问,添加到 vector 或从 vector 中删除时,请使用strand::poststrand::dispatchstrand concept在文档中进行了详细说明。

关于c++ - C++多线程服务器帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4640058/

10-09 15:54