Qt基於QSemaphore的生產者消費者模型
#include <QCoreApplication>
#include <QThread>
#include <QSemaphore>
#include <QDebug>
int dataSize=80;
int bufferSize=40;
QSemaphore usedSemaphore(0);
QSemaphore freeSemaphore(bufferSize);
int arr[40];
class Producer:public QThread{
protected:
void run(){
for(int i=0;i<dataSize;i++){
freeSemaphore.acquire();
arr[i%bufferSize]=i;
usedSemaphore.release();
}
}
};
class Consumer:public QThread{
protected:
void run(){
for(int i=0;i<dataSize;i++){
usedSemaphore.acquire();
qDebug()<<arr[i%bufferSize];
freeSemaphore.release();
}
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Producer thread1;
Consumer thread2;
thread2.start();
thread1.start();
thread1.wait();
thread2.wait();
return a.exec();
}
相關文章
- 生產者消費者模型模型
- 新手練習-消費者生產者模型模型
- Java實現生產者-消費者模型Java模型
- 生產者消費者模式模式
- 使用Disruptor實現生產者和消費者模型模型
- JAVA執行緒消費者與生產者模型Java執行緒模型
- 生產者消費者模式,以及基於BlockingQueue的快速實現模式BloC
- 生產消費者模式模式
- Java多執行緒14:生產者/消費者模型Java執行緒模型
- 九、生產者與消費者模式模式
- python 生產者消費者模式Python模式
- ActiveMQ 生產者和消費者demoMQ
- 鎖,threading local,以及生產者和消費者模型thread模型
- Qt生產者消費者實驗(2):等待條件QWaitConditionQTAI
- C++ condition_variable 實現生產者消費者模型C++模型
- Java實現生產者和消費者Java
- 生產者和消費者(.net實現)
- 記錄一次日常開發中基於阻塞佇列的生產者和消費者模型佇列模型
- java編寫生產者/消費者模式的程式。Java模式
- Python中的生產者消費者問題Python
- python多執行緒+生產者和消費者模型+queue使用Python執行緒模型
- python 多執行緒實現生產者與消費者模型Python執行緒模型
- Java多執行緒-併發協作(生產者消費者模型)Java執行緒模型
- java實現生產者消費者問題Java
- 阻塞佇列和生產者-消費者模式佇列模式
- linux 生產者與消費者問題Linux
- 多執行緒之生產者消費者執行緒
- 直觀理解生產者消費者問題
- Java 生產者消費者模式詳細分析Java模式
- Java 多執行緒基礎(十二)生產者與消費者Java執行緒
- 讀者寫者與生產者消費者應用場景
- Java多執行緒——生產者消費者示例Java執行緒
- 生產者與消費者之Android audioAndroid
- 併發設計模式---生產者/消費者模式設計模式
- 使用BlockQueue實現生產者和消費者模式BloC模式
- java多執行緒:執行緒間通訊——生產者消費者模型Java執行緒模型
- 插曲:Kafka的生產者案例和消費者原理解析Kafka
- 分享一個生產者-消費者的真實場景