boost::asio::ip::tcp::socket write_some多线程的问题

zhousitiaoda 2014-09-29 11:48:08

void CTestr::SendData(const std::string& strData) {
system::error_code ignored_error;
if(m_socket.get() ){
m_socket->write_some(asio::buffer(strData), ignored_error);
}
}

1个服务端1个客户端,服务端通过SendData向客户端发送数据,但SendData有可能同时在多个线程中被调用,不加锁会有问题不?
...全文
332 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mujiok2003 2014-09-29
  • 打赏
  • 举报
回复
看看strData和m_socket有没有争用(contention)。
snake_xiongyang 2014-09-29
  • 打赏
  • 举报
回复
你需要查文档 http://www.boost.org/doc/libs/1_56_0/doc/html/boost_asio/reference/generic__stream_protocol/socket.html#boost_asio.reference.generic__stream_protocol.socket.thread_safety 结论是 Thread Safety Distinct objects: Safe. Shared objects: Unsafe.
zhousitiaoda 2014-09-29
  • 打赏
  • 举报
回复
悄悄顶一下。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧