Multithreading 在两个独立线程之间共享队列,以便在UDP广播服务器中接收和处理数据

Multithreading 在两个独立线程之间共享队列,以便在UDP广播服务器中接收和处理数据,multithreading,udp,Multithreading,Udp,我创建了一个广播服务器,一次必须有10个客户端。它必须能够一次读取10个客户端的数据,并通过广播消息回复所有客户端。为了加快通信速度,我决定在服务器端创建两个独立的线程 一个Thread1专用于连续接收数据并将数据放入队列。然后,该数据由另一个Thread2从队列中读取并完成处理 i、 e.队列必须在Thread1和Thread2之间共享 我怎样才能有效地做到这一点?这两个线程之间如何共享队列 如果Thread1正在同一队列中写入,而Thread2正在读取呢 任何帮助都将不胜感激。主要思想是消费

我创建了一个广播服务器,一次必须有10个客户端。它必须能够一次读取10个客户端的数据,并通过广播消息回复所有客户端。为了加快通信速度,我决定在服务器端创建两个独立的线程

一个Thread1专用于连续接收数据并将数据放入队列。然后,该数据由另一个Thread2从队列中读取并完成处理

i、 e.队列必须在Thread1和Thread2之间共享

我怎样才能有效地做到这一点?这两个线程之间如何共享队列

如果Thread1正在同一队列中写入,而Thread2正在读取呢


任何帮助都将不胜感激。

主要思想是消费者等待某些数据可用,生产者通知数据可用的时间。这可以通过使用条件变量简单有效地完成。看一看-作者实现了这样一个队列,每一步都附有详细的解释。

要在线程之间共享数据,请看一下这个。为了防止线程读取和写入同一共享数据,您需要访问共享数据。尝试后,我会告诉您它是如何工作的,但看起来很有用:谢谢: