队列和线程池之间的交互?
interaction between Queue and pool of Threads?
我正在创建一个从外部提供程序接收数据的 C++ 应用程序。每秒的数据量可能非常大。我想过使用将数据推送到队列中的线程。然后一个线程池将从该队列中获取数据。
我的问题是:
这是处理这个问题的好方法吗?
如果不是最好的解决方案是什么?
谢谢。
1- is this a good way to deal with this problem.
这是一个众所周知的模式,并在许多应用程序中使用。
您可以使用 std:queue
来实现它。只需使用 std:mutex
保护其上的 read/write 操作。此外,您还应该有一个条件变量或信号量,当队列中有新数据可用时,池线程正在等待并收到通知。
我正在创建一个从外部提供程序接收数据的 C++ 应用程序。每秒的数据量可能非常大。我想过使用将数据推送到队列中的线程。然后一个线程池将从该队列中获取数据。
我的问题是:
这是处理这个问题的好方法吗?
如果不是最好的解决方案是什么?
谢谢。
1- is this a good way to deal with this problem.
这是一个众所周知的模式,并在许多应用程序中使用。
您可以使用 std:queue
来实现它。只需使用 std:mutex
保护其上的 read/write 操作。此外,您还应该有一个条件变量或信号量,当队列中有新数据可用时,池线程正在等待并收到通知。