【发布时间】:2012-11-26 23:13:05
【问题描述】:
我正在尝试使用 boost:asio 实现双向通信。我正在编写将与多个客户端通信的服务器。
我希望在没有任何同步和顺序的情况下进行客户端的写入和读取 - 客户端可以随时向服务器发送命令,并且它仍然会循环接收一些数据。当然,必须保护对共享资源的访问。
实现这一目标的最佳方法是什么?有两个线程 - 一个用于阅读,一个用于编写一个不错的选择吗?接受连接并管理多个客户端怎么样?
//编辑
“无同步和顺序”是指服务器应始终将其数据流式传输给客户端,并且它可以随时响应(更改其行为)客户端请求,而不管现在发送给他们的是什么.
【问题讨论】:
-
您可能需要为每个客户端的每个读取和每个写入通道设置一个线程,并需要一个额外的线程来管理传入连接。
标签: c++ multithreading thread-safety boost-asio