FreeRtos进阶——消息队列的操作逻辑

消息队列(queue)在这里插入图片描述

在不同的任务之间,如果我们需要互相之间通信,使用全局变量进行通信,是一种不安全的通信的方式。为保证线程安全,我们需要引入消息队列的通信方式。

粗暴的消息队列

为保证线程的安全,在FreeRtos使用消息队列进行读写时,如果要实现互斥访问,我们都会采取关中断的操作。
在这里插入图片描述
在我们进行读写数据时采用环形缓冲区类似循环指针,会有俩个指针,一个是读指针用于指示当前队列存在的最早消息,一个是写指针用于指示当前可以写的队列的位置。如果读指针为空代表当前列表没数据,如果写指针不为空代表当前没有位置可写。
这俩种情况都需要进入俩个等待队列,一个是等待读队列,一个是等待写队列。当读操作完成后,会唤醒等待写队列的任务,提示当前列表不为空;当写操作完成后,会唤醒等待读队列的任务,提示当前列表有数据了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/334492.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《TCP/IP网络编程》(第十一章)进程间通信

进程间通信意味着两个不同的进程间可以交换数据,它使得不同的进程能够协同工作,实现复杂的系统功能。 1.通过管道实现进程间通信 下图是基于 管道(PIPE) 的进程间通信结构模型 管道不属于进程的资源,属于操作系统的资…

多模态中的模态有哪些

“多模态”这个名字中的“模态”(modality),指的是不同的数据类型或信息源。在多模态大模型中,常见的模态包括: 文本模态: 包括自然语言文本、语音识别文本等。 图像模态: 指图像数据&#xff…

pip安装软件包提示“没有那个文件或目录”问题的处理

文章目录 一、Python.h:没有那个文件或目录二、lber.h:没有那个文件或目录 一、Python.h:没有那个文件或目录 pip install -I python-ldap3.0.0b1 #异常提示In file included from Modules/LDAPObject.c:3:0:Modules/common.h:9:20: 致命错…

【Linux】权限的理解之权限掩码(umask)

目录 前言 一、利用八进制数值表示文件或目录的权限属性 二、系统默认的权限掩码和权限掩码的作用原理 三、分析权限掩码改变文件或目录的权限属性 前言 权限掩码是由4个数字组合而成的,默认的第一位数字是0;后三位数字分别由八进制位数字组成。权限…

景源畅信:抖音小店新手小白如何做好运营?

在数字时代的浪潮中,抖音小店成为了众多创业者和商家的新宠。但面对激烈的市场竞争和不断变化的平台规则,新手小白如何才能在抖音小店的海洋里稳健航行,捕捉到属于自己的商机呢?接下来的内容将为你揭晓答案。 一、精准定位,明确目…

基于灰狼优化算法优化RBF神经网络(GWO-RBF)的数据时序预测

代码原理及流程 基于灰狼优化算法优化RBF神经网络的数据时序预测代码的原理和流程如下: 1. 数据准备:收集和准备用于时序预测的数据集,包括历史时序数据和对应的目标值。 2. RBF神经网络初始化:初始化RBF神经网络的参数&#x…

后端企业级开发之yaml数据序列化格式文件详解2024

yaml格式 数据格式 yaml 是一种数据序列化的格式 容易阅读 容易与脚本语言交互 以数据为核心 重数据轻格式 我们要知道他怎么书写 大小写敏感 属性层级关系使用多行描述 每行结尾使用冒号结束 使用缩进表示层级关系 同层级左侧对其 只运行使用空格 属性前面添加空格 #表…

安卓开发--安卓使用Echatrs绘制折线图

安卓开发--安卓使用Echatrs绘制折线图 前期资料安卓使用Echarts绘制折线图1.1 下载 Echarts 安卓资源1.2 新建assets文件1.3 新建布局文件1.4 在布局文件中布局WebView1.5 在活动文件中调用 最终效果 前期资料 Echarts 官网样式预览: https://echarts.apache.org/examples/zh/…

ClickHouse课件

列式存储数据库:hbase clickhouse 简介 ClickHouse入门 ClickHouse是俄罗斯的Yandex于2016年开源的列式存储数据库(DBMS),使用C语言编写,主要用于在线分析处理查询(OLAP),能够使用…

为表格添加背景色:\rowcolor, \columncolor,\cellcolor

设置行的背景 \rowcolor 是 LaTeX 中用于设置表格行的背景色的命令。它可以使表格更加美观和易于阅读。rowcolor 命令通常与 colortbl 宏包一起使用。 语法如下&#xff1a; \rowcolor{<color>}其中 表示要设置的背景色&#xff0c;可以是预定义的颜色名称&#xff08…

揭秘爬虫技术:从请求到存储的全方位解析

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、爬虫初探&#xff1a;请求与响应 二、数据解析&#xff1a;从混乱中提炼价值 三、数据…

2024年弘连网络FIC大会竞赛题线下决赛题

总结&#xff1a; FIC决赛的时候&#xff0c;很多小问题没发现&#xff0c;在pve平台做题确实很方便。 这套题目复盘完&#xff0c;服务器这块的知识确实收获了很多&#xff0c;对pve集群平台和网络拓扑也有了一定的认识&#xff0c;感谢各位大佬悉心指导。 接下来&#xff0…

Android 项目中自定义多个 RadioButton 并排一列选择效果实现

文章目录 1、静态版实现1.1、实现要求1.2、实现步骤1.3、代码实现1.4、代码实现说明1.5、结论 2、项目版实现(动态)1、先看效果图2、main的布局文件3、定义RadioButton的属性4、最后在代码中生成我想要的东东5、说明 3、后续优化方向 1、静态版实现 1.1、实现要求 我们需要在…

设计模型-系统架构师(三)

1、按照《中华人民共和国著作权法》的权利保护期&#xff0c;署名权和修改权 是永久保护的。 发表权、使用权和获取报酬权 保护期限 作者终生和死后的50年。 2、&#xff08;重要&#xff09;面向对象的分析模型主要由 顶层架构图、用例与用例图和&#xff08;&#xff09;构成…

国内半导体龙头企业的自动化转型之旅

在当今高速发展的科技时代&#xff0c;半导体行业正迎来前所未有的挑战与机遇。位于此浪潮前端的&#xff0c;是国内一家领先的半导体集成电路封装测试企业。凭借其规模和创新实力&#xff0c;该公司不仅在国内市场名列前茅&#xff0c;更是在全球半导体行业中占据了一席之地。…

(2020|ICML PMLR,线性 Transformer,核函数,RNN)Transformer 是 RNN

Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention 公众号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 3. 线性 Transformers 3.1. Transformer 3.2.…

备战秋招—模拟版图面试题来了

随着暑期的脚步逐渐临近&#xff0c;电子工程和集成电路设计领域的毕业生们&#xff0c;也将迎来了另一个求职的黄金期——秋招。我们总说机会是留给有准备的人。对于有志于投身于模拟版图设计的学子们来说&#xff0c;为了在众多求职者中脱颖而出&#xff0c;充分备战模拟版图…

网络——多区域OSPF配置(OSPF系列第1篇)

简介 路由协议OSPF全称为Open Shortest Path First&#xff0c;也就开放是的最短路径优先协议&#xff0c;使用链路状态路由算法&#xff0c;isis协议也是使用链路状态路由算法。而RIP协议使用距离矢量路由算法。 区域 为了能够降低OSPF计算的复杂程度&#xff0c;OSPF采用分…

C++的AVL树

目录 基本概念 插入的语言分析 LL右旋 RR左旋 额外结论及问题1 LR左右旋 RL右左旋 额外结论及问题2 插入结点 更新bf与判断旋转方式 旋转代码实现 准备工作一 LL右旋的实现 RR左旋的实现 准备工作二 LR左右旋的实现 RL右左旋的实现 完整代码 基本概念 1、…

Android Studio 所有历史版本下载

一、官网链接 https://developer.android.google.cn/studio/archive 操作 二、AndroidDevTools地址 https://www.androiddevtools.cn/ 参考 https://blog.csdn.net/qq_27623455/article/details/103008937