一.缓冲队列的背景
缓冲队列主要应用在生产者和消费者之间,保证数据的准确不丢失,提高效率。举个例子:如上图,假设点击按钮生成一个方块, 方块生产出来需要耗时1s,生成完毕后显示在界面上;然后点击10下按钮,要生产10个按钮预计耗时10s。
二.分析问题
点击按钮是一个毫秒级别的动作,用户可以1s点击5次,所以,界面不应该阻塞用户的操作,这里,用户点击多少次按钮就会产生多少个任务,这是生产者。然后方块生产出来要1s,是耗时的操作,所以,我们将这步动作移入线程进行处理,不妨碍主界面线程工作。生成完毕后显示在界面上,这步就是消费者直接显示屏幕上。希望你能理解这个模式,很重要。
三.推荐 ConcurrentQueue.h 和 BlockingConcurrentQueue.h类实现缓冲队列的数据读取
四.测试代码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QThread>
#include <QLabel>
#include <QMutex>
#include <QWaitCondition>
#include <BlockingConcurrentQueue.
标签:1s,Qt,队列,缓冲,点击,按钮,include
From: https://blog.csdn.net/cs821984831/article/details/140358378