我需要建议并可能对我的问题有所了解: Process1 - 在单独的线程中运行服务器并运行客户端的主进程。 Process2 - 做一些工作并将工作结果发送到服务器的客户端。
客户端沟通: 第一次发送 - 消息类型 2d发送 - 数据 3d读取 - 从服务器回答
服务器端的通信: 第一读 - 消息类型 2d读 - 数据 - 处理数据 - 将答案发送给客户
一些限制: - 该程序应该能够在本地和网络中运行。 - Process2的数量可以是6000左右 - C ++语言boost :: asio库
当前解决方案:我有异步客户端。做什么工作并运行客户端来发送结果。服务器正在接受循环中的客户端,当客户端接受时,服务器创建线程并处理通信。
有些评论!对于本地运行,Process2的一次数等于处理器核。
你觉得这个解决方案有什么好处,或者我应该采用另一种方法?
您不需要为'Process1'中的每个客户端创建线程,您可以使用async函数(前缀为'async_')来避免阻塞,因此所有客户端都可以在一个线程中运行。