队列和线程池之间的交互?

interaction between Queue and pool of Threads?

我正在创建一个从外部提供程序接收数据的 C++ 应用程序。每秒的数据量可能非常大。我想过使用将数据推送到队列中的线程。然后一个线程池将从该队列中获取数据。

我的问题是:

  1. 这是处理这个问题的好方法吗?

  2. 如果不是最好的解决方案是什么?

谢谢。

1- is this a good way to deal with this problem.

这是一个众所周知的模式,并在许多应用程序中使用。

您可以使用 std:queue 来实现它。只需使用 std:mutex 保护其上的 read/write 操作。此外,您还应该有一个条件变量或信号量,当队列中有新数据可用时,池线程正在等待并收到通知。