生产者消费者模式的不懂之处

Ujig 软件工程师  2020-08-20 05:22:16
生产者消费者模式中,为什么非要使用mutex,然后利用


const int BufferSize = 20;
QQueue<QVariant> queue;
QWaitCondition bufferIsNotFull;

for()
{
...
...
while(queue.size() == BufferSize)
bufferIsNotFull.wait(&mutex);
...
...
}


这种方式来实现呢?不能用空的while语句让他等待实现阻塞,满足要求就break出去吗?比如:

void QThread::run()
{
...
for()
{
...
while(1)
{
if(queue.size() < BufferSize)
break;
}
...
}
...
}

这样的话就不需要利用mutex。
...全文
44 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
smwhotjay 2020-08-20
学习【线程同步】
回复
相关推荐
发帖
其它技术问题
创建于2007-09-28

3843

社区成员

C/C++ 其它技术问题
申请成为版主
帖子事件
创建了帖子
2020-08-20 05:22
社区公告
暂无公告