4.事件组

事件组的本质:一个整数

里面的每一个bit,表示一类事件

任务A:可以等待这个整数的"bitx,bity,bitz....."都被设置为1.

这就是"AND"的关系

也可以等待这个整数的"bitx bity bitz..."任意一个被设置为1.

事件组有一个特别的地方在于:

1.假设任务A,B都在等待bit0事件

2.任务C设置了bit0事件.

3.这个时候我们的任务A 任务B都会被同时唤醒 无论是优先级高低 还是 先等待

有了事件组,我们就有了另一种方法解决:任务A如何及时得到多个队列的数据.

如果任务1 想等待队列1 和队列2的数据

任务A可以等等事件组:等待bit1 bit2的任何一位被设置

任务B写队列1 时候,也可以设置事件组bit1

任务C写队列2时候,也可以设置事件组bit2

这样无论谁写了队列1 或者 队列2 都可以唤醒任务A

这个时候我们的任务就可以根据得到的事件是哪个bit 去读对应的队列

示例代码如下;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值