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

时间:2015-02-25 15:10:37

标签: c++ multithreading pthreads threadpool

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

我的问题是:

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

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

  3. 感谢。

1 个答案:

答案 0 :(得分:1)

  

1-这是处理这个问题的好方法。

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

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