1:vTaskList的使用
我使用的时候,如果把pcWriteBuff定义在任务中,程序会卡死,不信你可以尝试一下,所以我就把pcWriteBuff定义到了全局中,才能使用
2:队列问题
场景:创建3个格子的队列,每隔500ms发送一次消息给队列,每隔1000ms取一次消息。在这个过程中出现队列格子不够,导致发送失败(不等待,阻塞时间为0)
修改成无限等待,则不会出现发送失败的问题
每隔1000ms发送一次消息给队列,每隔500ms取一次消息,不等待取,不等待发送,均为0
每隔1000ms发送一次消息给队列,每隔500ms取一次消息,无限等待取,不等待发送,就有点同步的意思了
3:二值信号量
场景:释放信号量500ms一次,获取信号量1000ms一次,并且获取成功打印Count的值并且++。
释放失败是因为已经释放了,已经为1了,所以再来一次释放就失败了,它不像计数信号量可以一直加到我们设置的值
4:计数信号量
场景:新创建一个初始值为10的信号量,500ms获取一次,获取成功就打印Count的值并且++。因此能打印10次,10次后信号量为0,获取信号量失败则无法打印了。可以使用计数代替二值,只要初始值为0,最大值为1即可
5:二值信号量的优先级翻转问题
6:互斥信号量
互斥信号量是特殊的二值信号量,1具备优先级继承,2一开始信号为1,而二值信号量一开始为0,因此互斥信号量一开始就可以获取成功