如何在C ++中实现阻塞队列以在线程之间处理数据?

时间:2017-07-07 17:07:21

标签: c++ c++11

我需要制作一个有两个主题的应用。 一个将生成数据(文件路径和要为该路径执行的操作 - 创建/更新/删除),另一个线程将需要使用此数据并实际执行任务。

为此,我想有一个队列,从一个线程将数据放入其中,从另一个线程中取出项目并按顺序执行操作。

我的问题是如何使这些数据在这些线程之间可共享,然后如何在等待数据放入队列时使第二个线程阻塞?只需要一段时间检查队列是否为空就会像疯了一样吃CPU。每隔几毫秒或几秒钟添加一次“睡眠”就不会有效。

如何做到这一点?任何实现此类数据的库?

1 个答案:

答案 0 :(得分:5)

有几个例子: