队列可以传输数据,任务之间和任务和中断之间,消息队列用来传数据,占用时间也长
但哦我们有时候只需要传递状态,只需要一个数值表示
如果我们屏幕按固定刷新,就会很消耗资源,如果我们数据变化了,再让屏幕刷新,就可以减小资源占用,这时就会用到信号量了
二值信号量就只有0和1,被写入和被取走的两个状态,例如读到数据就是1,然后再屏幕刷新的时候,判断是否为1再进行刷新,就像flag一样,就像标志位一样,计数信号量就是例如计数器一样,计数车库里的车,来了加一,取走减一。
这是 手动初始化
释放信号量
一个释放信号量 一个接受信号量 必须时间同步 谁多了都要寄
读取信号量可以死等,等到有信号量就直接读走
计数信号量需要手动开启,默认关闭的。
实验是模拟车库计数器