信号量
设置一个值,该值为允许同时访问该资源的任务个数
一个任务访问该信号该值就减1,为0时其他任务无法再访问只能等待
其他任务释放资源后该值会加1
互斥信号量
用信号量进行行为同步时(互斥信号量),只能提供同步的时刻信息,不能提供内容信息
控制方要求得到控制方的内容信息时,可用消息邮箱或消息队列
信号量的特殊情况,设置的值为1
即同时访问该资源的任务只有1个
保证资源的同步性
事件标志组
看名字就知道是事件标志
对一个事件所需其他事件的条件进行标志
例:A事件发生的条件是B/C/D三个事件必须都发生了才能发生A事件
那么对A事件就可创建一个事件标志组,对B/C/D三个事件的状态进行判断,对已发生的事件对对应标志位进行置位
邮箱
一个的变量的指针从一个任务传递到另一个或多个任务中去
该指针先发到邮箱,任务从邮箱里提取指针(传递指针指向具体变量值)
消息邮箱只能存放一条消息
进行任务的同步时,消息产生比消息使用要慢(保证使用任务一直在等待,不至于消息丢失)
消息产生比消息使用速度快
可用消息队列(存放多条消息),解决邮箱临时堆积问题
消息队列:消息平均产生时间同样要比消息使用时间要短,否则消息队列会溢出
队列
实现邮箱的数组,变量的指针以队列的方式排列