队列freertos原理
HMM模型原理
隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。隐马尔可夫模型(HMM)可以用五个元素来描述,包括2个状态集合和3个概率矩阵:1. 隐含状态 S、2. 可观测状态 O、3. 初始状 ......
RabbitMQ 实现消息队列延迟
1.概述 要实现RabbitMQ的消息队列延迟功能,一般采用官方提供的 rabbitmq_delayed_message_exchange插件。但RabbitMQ版本必须是3.5.8以上才支持该插件,否则得用其死信队列功能。 2.安装RabbitMQ延迟插件 检查插件 使用rabbitmq-plug ......
SpringBoot RabbitMQ死信队列
1. 死信定义 无法被消费的消息,称为死信。 如果死信一直留在队列中,会导致一直被消费,却从不消费成功,专门有一个存放死信的队列,称为死信队列(DDX, dead-letter-exchange)。 死信队列 DLX,Dead Letter Exchange的缩写,又死信邮箱、死信交换机。其实DLX ......
STL的vector容器的实现原理是什么,他是怎么扩容的?详细图解展示!!!
实现原理: vector底层实现原理是一维数组。 vector通过一个连续的数组存放元素,如果这个数组的容量已满,再插入数据的时候,就要去申请一块更大的内存,然后把原来数组的数据复制到新数组中来,再释放原来数组的内存。 那么申请(扩容)多大的空间的比较合适呢? 如果我们扩容的空间太小了,比如原来的数 ......
一文看懂低代码,5分钟从入门到原理全搞定
全球低代码市场已经走过了近20年,中国低代码市场近5年经历了百花齐放的广泛探索阶段,更旺盛的市场需求逐步在被激发。现在,让我们按下暂停键,看看这些产品给我们呈现了低代码市场一幅怎样的百景图。 低代码平台简介 广义上的低代码平台包括低代码平台和零代码平台,它们都属于APaaS(应用平台即服务),两者的 ......
Golang GMP原理(1)
Golang GMP原理(1) 概念梳理 线程 线程一般指内核级线程,核心如下: 操作系统的最小调度单元 创建 销毁 调度由内核完成,cpu要完成内核态与用户态的转换 可充分利用多核,实现并行 协程 协程线程对应 协程,又称为用户级线程,核心点如下: 与线程存在映射关系,为M:1 创建、销毁、调度在 ......
FreeRTOS的列表
PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ]; /**< Prioritised ready tasks. */ PRIVILEGED_DATA static List_t xDelayedTaskLi ......
C++实现一个简单的生产者-消费者队列
本文的代码都是ChatGPT生成,我只是做了微小的调整和整合,AI提示词如下: 设计一个C++类,支持生产者-消费者模型,可以通过size函数获取剩余数量 可能第一次生成的不一定合适,多刷新几次。 生成的ProducerConsumerQueue.h代码如下: #ifndef PRODUCER_CO ......
redis之持久化方案,主从复制,哨兵高可用,集群原理及搭建,缓存优化
redis之持久化方案,主从复制,哨兵高可用,集群原理及搭建,缓存优化 昨日内容回顾 # 悲观锁乐观锁: django中实现: 悲观锁:mysql 行锁 表锁 乐观锁:真正修改时 加入限制条件 django中事务如何开启 原生sql如何开启事务:begin; commit; django中如何开启事 ......
(四) DOS的原理和相关指令
DOS介绍 DOS: Disk Opreating System 磁盘操作系统 常见的DOS命令 创建删除文件夹 md G:\\tmp # 创建一个叫tmp的文件夹 rd G:\tmp # 删除G盘tmp文件夹 列出当前目录内容 dir d:\abc # 列出abc文件夹内容 切换目录 cd fil ......
Redis——cluster集群原理
摘要在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态;如果 master 节点异常,则会做主从切换,将一台 slave 作为 master。当master挂掉的时候,sentinel 会选举出来一个 master,选举的时候是没有办法 ......
Golang 并发&同步的详细原理和使用技巧
Golang 并发概要说明 并发模型 Golang 的并发模型属于一种很典型的 CSP(communicating sequential processes) 并发模型,其核心是不要通过共享内存来通信,而应该通过通信来共享内存。具体实现,就是通过 goroutine 来实现并发,然后并发的 goro ......
从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC
现代的垃圾回收器为了低停顿的目标可谓将“并发”二字玩到极致,Shenandoah在G1基础上做了非常多的优化来使回收阶段并行,而ZGC直接采用了染色指针、NUMA等黑科技,目的都是为了让Java开发者可以更多的将精力放在如何使用对象让程序更好的运行,剩下的一切交给GC,我们所做的只需享受现代化GC技... ......
【单例设计模式原理详解】Java/JS/Go/Python/TS不同语言实现
简介 单例模式(Singleton Pattern)属于创建型设计模式,这种模式只创建一个单一的类,保证一个类只有一个实例,并提供一个访问该实例的全局节点。 当您想控制实例数目,节省系统资源,并不想混用的时候,可以使用单例模式。单例有很多种实现方式,主要分为懒汉和饿汉模式,同时要通过加锁来避免线程安 ......
优先队列priority_queue的 使用| 堆 | 仿函数
在阅读使用分支限界法解决TSP问题时遇到了这样一段代码: //排列树的节点定义 struct node { int cl;//当前走过的路径长度 int id;//处理的第几个城市 int x[100];//记录当前路径,下标从1开始 node() {}//默认构造函数,不提供任何参数,即通常的结构 ......
LLDB原理与调试实践
LLDB原理与调试实践 使用LLDB LLDB(Low Level Debugger)项目以LLVM基础设施构造一个调试器。它作为Mac OS X系统的Xcode 5调试器,正在活跃地开发和发布。由于2011年开发之初就被置于Xcode范围之外,LLDB一直未发布一个稳定的版本,直到写作本文之时。你 ......
【mmap】零拷贝 - mmap原理
mmap简介 mmap是零拷贝技术的一种实现 使用系统调用读写文件 修改一个文件的内容需要三个步骤: 1.把文件内容(File)读入内存中(page cache) 2.修改内存中的内容(在用户空间) 3.把修改后用户空间的数据写入page cache,再同步到File中 使用如下代码实现上面过程: ......
05-1 液体燃料燃烧:雾化原理与技术
控制雾化的两个准则数:韦伯数和奥内佐格数 这两个准则数可以刻画液滴破碎程度,韦伯数越大,液滴破碎可能性会增加。 雾化过程和机理 强化液体燃料雾化的主要方法有: 提高液体燃料的喷射压力,喷射压力越高(喷射速度越大),雾化得越细。 降低液体燃料的粘度与表面张力,如提高燃油的温度可降低燃油的粘度与其表面张 ......
docker启动rabbitMQ,通过java创建交换机、队列、绑定
通过docker启动rabbitMQ docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:manageme ......
深度学习网络fine-tune原理研究 - 以卷积神经网络为例
一、什么是预训练模型(pre-trained model) 预训练模型就是已经用数据集训练好了的模型,这里的数据集一般指大型数据集。比如 VGG16/19 Resnet Imagenet COCO 正常情况下,在图像识别任务中常用的VGG16/19等网络是他人调试好的优秀网络,我们无需再修改其网络结 ......
消息队列之 RabbitMQ
原文地址 www.jianshu.com 关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整理记录一下了。 市面上的消息队列产品有很多,比如老牌的 ActiveMQ、RabbitMQ ,目前我看最火的 Kafka ,还有 ......
【剑指 Offer】 59 - II. 队列的最大值
【题目】 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入: ["MaxQueue","push ......
进程前驱图控制原理解析
题目: 进程P1、P2、P3、P4和P5的前趋图如图所示。 若用PV操作控制进程P1~P5并发执行的过程,则需要设置5个信号量S1、S2、S3、S4和S5,进程间同步所使用的信号量标注在图1-4中的边上,且信号量S1~S5的初值都等于零,初始状态下进程P1开始执行。图1-5中a、b和c处应分别填写 ......
Java基础之String字符串的底层原理,面试常见问题
前言 在之前的两篇文章中,给大家介绍了String字符串及其常用的API方法、常用编码、正则表达式等内容,但这些内容都是停留在”如何用“的阶段,没有涉及到”为什么“的层面。实际上,我们在求职时,面试官很喜欢问我们关于String的一些原理性知识,比如String的不可变性、字符串的内存分配等。为了让 ......
【IO】IO底层原理以及常见模型
1 前言 从基础讲起,IO底层原理是隐藏在Java编程知识 之下的基础知识,是开发人员必须掌握的基本原理,可以说是基础的 基础,更是大公司面试通关的必备知识。本节从操作系统的底层原理入手,通过图文并茂的方式为大家深入剖析高并发IO的底层原理,并介绍如何通过设置来让操作系统支持高并发。 2 IO读写的 ......
深入理解python虚拟机:调试器实现原理与源码分析
在本篇文章当中主要给大家介绍 python 语言当中调试器的实现原理,通过了解一个语言的调试器的实现原理我们可以更加深入的理解整个语言的运行机制,可以帮助我们更好的理解程序的执行。 ......
Python随记 - 解释执行原理
Introduce: 技术分享|Python解释执行原理及过程(原作者:飞林沙) Python解释器把源代码转换成中间形式:字节码。然后再由Python虚拟机来执行这些字节码。 我们就用不着担心程序的编译、库的连接加载等问题了,所有这些工作都由Python虚拟机代劳了。 一分为二地看待Python的 ......
【编译原理小记】:正规式到NFA,NFA化简为DFA
做编译原理作业是遇到的一类比较繁琐的题,记录一下。😘 大体流程 由正规式得出NFA的状态转换图 根据NFA的状态转换图写出NFA确定化为DFA的状态转换矩阵 根据上述矩阵中的重命名写出DFA重新命名状态转换矩阵表 化简所得到的DFA 画出DFA的状态转换图 正规式->NFA的状态转换图 要领比较简 ......
编程实现可靠数据传输原理 Go-Back-N
1. 编写接收端代码 接收端模拟网络环境较差时情况,每次生成一个随机数,小于0.8时不丢包,大于0.8时丢包。 接收数据格式:编号+空格+内容 返回数据格式: 丢包:Loss+空格+编号 未丢包:ACK+空格+编号 接收包非累计计数时不做处理。 2. 编写发送端代码 发送端较为复杂,分为两个线程: ......
C++中什么是多态,多态需要满足什么条件,怎么使用,它的实现原理是什么?
概念: 多态是指一个接口,根据传入的参数不同,呈现多种多态,多态分为静态多态和动态多态。 静态多态:像函数重载和运算符重载属于静态多态,复用函数名。它的函数地址在编译阶段就已经确定了。 动态多态:通过派生类和虚函数实现运行时多态(有子类继承,子类重写父类虚函数),它的函数地址在运行时确定。 多态需要 ......