我创建了一个广播服务器,一次只能有10个客户端。它必须能够一次从10个客户端读取数据并通过Broadcast Message to all the Clients
进行回复。为了快速沟通,我决定制作two Separate Threads at Server Side.
一个Thread1将专门用于连续接收数据并将数据放入队列中。然后,另一个Thread2从队列中读取该数据并完成处理。
即。必须在Thread1和Thread2之间共享队列。
我该如何有效地做到这一点?如何在这两个线程之间共享队列?
如果Thread1在同一个队列中写入并且Thread2正在读取怎么办?
任何帮助将不胜感激。
答案 0 :(得分:0)
主要思想是“消费者”等待一些数据可用,“生产者”会在数据可用时通知。这可以使用条件变量简单有效地完成。看一下this article - 作者实现了这样一个队列,并在每个步骤中附上详细解释。