qt线程间的通信有其特有的信号与槽,也可通过共享内存的方式实现,下面演示如何使用QShareMemory实现线程间的共享内存;这里使用为简单的理解QShareMemory,并没有实现消费者和生产者的逻辑。
标题生产者端程序
头文件
#ifndef PRODUCERTHREAD_H
#define PRODUCERTHREAD_H
/**
* @file producerthread.h
* @brief 生产者线程,用于向共享内存写入数据
* @author yidong.yang
* @date 2019-10-15
* @hitstory v2.0
*/
#include <QObject>
#include <QThread>
#include <QSharedMemory>
#include <QDebug>
class ProducerThread: public QThread {
public:
ProducerThread();
protected:
void run() override;///>重写run函数
private:
bool stopped;
QSharedMemory *producerShare;///>生产者共享内存
};
#endif // PRODUCERTHREAD_H
源文件
#include "producerthread.h"
ProducerThread::ProducerThread() {
stopped = false;
producerShare = new QSharedMemory();
producerShare-&