请教大侠Qt中多线程的一个问题。

现在自己做一个图像处理的东西,主线程负责显示图片并且接收次线程传来的数据在图片上标定目标,次线程负责处理图片并返回处理结果的数据给主线程。主线程会不停的给次线程图片进行处... 现在自己做一个图像处理的东西,主线程负责显示图片并且接收次线程传来的数据在图片上标定目标,次线程负责处理图片并返回处理结果的数据给主线程。主线程会不停的给次线程图片进行处理,请问当次线程还没返回数据的时候如何让主线程不给下一个数据?
既是说,主线程给次线程一个任务处理完后返回数据给主线程,主线程才给次线程下一个任务。
展开
 我来答
欢乐多Ek
2013-07-31 · TA获得超过478个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:412万
展开全部

你的线程顺序是不是这样的

如果是这样的话,你的次线程完全没有意义,因为右边直接合并到左边更省事。

建议你采用缓冲区的形式,也就是一个传入缓冲,一个接收缓冲,然后在缓冲区里面加上QMutex 和 QWaitCondition 变量用来控制读写缓冲,主线程不停地将数据压入传入缓冲,次线程不停地读传入缓冲进行处理,再将处理完的数据送往传出缓冲,这样就会形成一个流,效率比较高。

当然不知道你的程序是怎么安排的,得按具体问题来,上面的是一个通用的办法。

一般像这种线程同步的都会用到 QMutex 和 QWaitCondition 。

dry_land
2013-07-31 · TA获得超过303个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:156万
展开全部
互斥锁啊,主线程先加锁a再给次线程任务再解锁b,次线程加锁b处理完后解锁a。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式