根据QMutex和QSemaphore的特点,我们可以实现一个生成者对应多个消费者的的生产者模型。
可参考:
http://blog.csdn.net/fanyun_01/article/details/79354222
http://blog.csdn.net/fanyun_01/article/details/79354106
互斥量可以锁定一次,而信号量可以在设置上限大小的情况下,获取多次,可以用来保护一定数量的同种资源。在使用acquire函数跨线程获取n个资源。release(n)可以释放n个资源。当没有足够的资源时,调用者将被阻塞直到有足够的资源可用。
#include <QCoreApplication>
#include <QSemaphore>
#include <QThread>
#include <QMutex>
#include <iostream>
using namespace std;
QSemaphore vacancy(10); //资源上限
QSemaphore produce(0); //产品数量
QM