当前位置:网站首页 > 人工智能与大数据应用 > 正文

环形队列有什么应用场景(环形队列有什么应用场景吗)



前面介绍的队列(queue)可以用于传输数据:在任务之间、任务和中断之间。

消息队列用于传输多个数据,但是有时候我们只需要传递状态,这个状态值需要用一个数值表示,比如:

    在这种情况下我们只需要维护一个数值,使用信号量效率更高、更节省内存 本章涉及如下内容:

      12.1 信号量的特性

      12.1.1 信号量的常规操作

      信号量这个名字很恰当:

        计数型信号量的典型场景是:

          二进制信号量跟计数型的唯一差别,就是计数值的最大值被限定为1。

          12.1.2 信号量跟队列的对比

          差异列表如下:

          12.1.3 两种信号量的对比

          信号量的计数值都有限制:限定了最大值。如果最大值被限定为1,那么它就是二进制信号量;如果最大值不是1,它就是计数型信号量。

          差别列表如下:

          12.2 信号量函数

          使用信号量时,先创建、然后去添加资源、获得资源。使用句柄来表示一个信号量。

          12.2.1 创建

          使用信号量之前,要先创建,得到一个句柄;使用信号量时,要使用句柄来表明使用哪个信号量。 对于二进制信号量、计数型信号量,它们的创建函数不一样:

          创建二进制信号量的函数原型如下:

          创建计数型信号量的函数原型如下:

          12.2.2 删除

          对于动态创建的信号量,不再需要它们时,可以删除它们以回收内存。

          vSemaphoreDelete可以用来删除二进制信号量、计数型信号量,函数原型如下:

          12.2.3 give/take

          二进制信号量、计数型信号量的give、take操作函数是一样的。这些函数也分为2个版本:给任务使用,给ISR使用。列表如下:

          xSemaphoreGive的函数原型如下:

          xSemaphoreGive函数的参数与返回值列表如下:

          pxHigherPriorityTaskWoken的函数原型如下:

          xSemaphoreGiveFromISR函数的参数与返回值列表如下:

          xSemaphoreTake的函数原型如下:

          xSemaphoreTake函数的参数与返回值列表如下:

          xSemaphoreTakeFromISR的函数原型如下:

          xSemaphoreTakeFromISR函数的参数与返回值列表如下:

          到此这篇环形队列有什么应用场景(环形队列有什么应用场景吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

          版权声明


          相关文章:

        • ResNet模型(resnet模型应用场景)2025-02-16 07:18:04
        • 快应用中心下载安装(快应用中心下载安装免费)2025-02-16 07:18:04
        • msp430单片机应用(msp430单片机教程)2025-02-16 07:18:04
        • 快应用中心是啥(快应用中心有用吗)2025-02-16 07:18:04
        • ldr指令和ldr伪指令有什么不同(ldr伪指令与ldr加载指令的功能和应用有何区别)2025-02-16 07:18:04
        • 快应用中心在哪里打开(vivo快应用中心在哪里打开)2025-02-16 07:18:04
        • 操作系统原理及应用(操作系统原理及应用(linux)(第二版))2025-02-16 07:18:04
        • pass应用平台(pass应用下载)2025-02-16 07:18:04
        • ddpm模型代码(ddm模型的应用)2025-02-16 07:18:04
        • 环形队列有什么应用场景(环形队列有什么应用场景和特点)2025-02-16 07:18:04
        • 全屏图片