队列:用来传递数据
如果不想传递数据,只是"通知"呢?
这个时候,我们就可以使用"信号量","信号量"的本质:item_size等于 0 的队列
信号量里面有什么呢?
1.一个计数值
2.一个"队伍",就是一个链表:用来记录等待的对应信号量的任务
假设现在我们的cnt是等于0,
如果这个时候我们的任务A想去获取信号量,那么它就会被阻塞:
1.从ReadyList[1]里移除
2.放入信号量的"list"
这时候我们的任务就不会参与调度了:他不在就绪链表中
这个时候,如果我们的任务B"释放信号量",就会把"信号量里list上的第一个任务"唤醒:就是把他移到就绪链表中,那么他就会继续运行了.