我正在创建一个从外部提供程序接收数据的C ++应用程序。每秒的数据量可能非常大。我曾想过使用一个将数据推入队列的线程。然后一个线程池将从该队列中获取数据。
我的问题是:
这是处理这个问题的好方法吗?
如果不是最佳解决方案是什么?
感谢。
答案 0 :(得分:1)
1-这是处理这个问题的好方法。
这是众所周知的模式,并在许多应用程序中使用。
您可以使用std:queue
来实现此目的。只需使用std:mutex
保护其上的读/写操作。此外,您应该有一个条件变量或信号量,池中的线程正在等待,并在队列中有新数据时得到通知。