2.队列和队列集

队列的本质就是环形buff,加了互斥操作,加了阻塞-唤醒.

1.介绍一下环形BUFF

2.阻塞和唤醒

在我们队列中是有一个读list 链表 和 一个写list链表 他们就是用来保存 读 或者 写阻塞 的任务

假设我们 就绪链表中有A 和 B两个任务 他们正常情况下都是轮流运行,

这个时候 A 想读队列,但是没有数据被阻塞

这个时候A 任务就会从就绪链表[1]中剔除出来,挂载到 队列里面的读链表中

某个时候 B开始往 队列中写数据

那这个时候 我们的 B 会唤醒 读list中的A

这个时候我们的A 会从读 list 中剔除 加载到 就绪链表[1]中,A又可以开始重新调度了.

3.队列集

        队列集其实也是队列,只不过我们的普通队列里面保存的是数据,队列集保存的是要监测的队列句柄handle,为了保证监测的不遗漏,那我们队列集的总长度,就是要监测的队列的总长度.

下面就是队列集的使用过程

一定要注意,我们只是监测对应的消息队列,不是存储对应的数据,要得到数据,还是要通过对应的句柄来获取的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值