76-多线程编程,thread的间的交互 4_recv

1.介绍condition_variable,只是一种通讯的方法,配合mutex就能安全传输某种信号,告诉其他线程条件满足
#include <condition_variable.>
全局变量
在这里插入图片描述

2.main函数流程
1)程序启动后,塞一堆东西到global这个list里面去,
2)线程启动开始往下面跑
3)ready = true
4) 主线程在往globalList里插进去字符串,每对globalList改变后,再用cv.notify_one()通知一下(唤醒一个线程)
5)判断globalList是否为空,就是消息是否都处理结束,cv.notify_all()唤醒全部线程

在这里插入图片描述
3.这里用的unique_lock,与lock的区别:
cv.wait()讲unique_lock的锁释放掉,等待的过程中是不加锁的,等待后面的条件,后面条件达成就往下面跑,unique_lock这时会重新获得lock(mutex)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值