一家专门做爆品印刷的网站,桂林网站建设服务,做网站有几个软件,软件开发培训班信号量 信号量信号量简介常用信号量API函数 信号量
信号量简介
信号量#xff08;Semaphore#xff09;是一种实现任务间通信的机制#xff0c;可以实现任务之间同步或临界资源的互斥访问#xff0c;常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中#xf… 信号量 信号量信号量简介常用信号量API函数 信号量
信号量简介
信号量Semaphore是一种实现任务间通信的机制可以实现任务之间同步或临界资源的互斥访问常用于协助一组相互竞争的任务来访问临界资源。在多任务系统中各任务之间需要同步或互斥实现临界资源的保护信号量功能可以为用户提供这方面的支持。
1.1 二值信号量 二值信号量既可以用于临界资源访问也可以用于同步功能。1.2 计数信号量 二进制信号量可以被认为是长度为 1 的队列而计数信号量则可以被认为长度大于 1的队列信号量使用者依然不必关心存储在队列中的消息只需关心队列是否有消息即可计数信号量数值表示可用资源的数目。1.3 互斥信号量 互斥信号量其实是特殊的二值信号量由于其特有的优先级继承机制从而使它更适用于简单互锁也就是保护临界资源。1.4 递归信号量
常用信号量API函数
创建信号量函数 创建二值信号量 xSemaphoreCreateBinary() 创建计数信号量 xSemaphoreCreateCounting() 信号量删除函数 vSemaphoreDelete() 信号量释放函数 xSemaphoreGive() xSemaphoreGiveFromISR() 信号量获取函数 xSemaphoreTake() xSemaphoreTakeFromISR()