当前位置: 首页 > news >正文

qt之使用redis与其他程序(python)交互同通信

一、前言

有需求,趁热调试出了嵌入式系统的算法环境安装和远程桌面以及一些其他的之前一直未调试出搁置的功能,趁热继续调试进阶功能redis通信,redis与sqlite各有千秋,redis可以作为在嵌入式系统下多个程序之间相互通信的中间件,很方便,谁也不用嵌入子程序,大家一起通过redis共享数据,这个感觉在数据通信方向又有个质的提升了

PS:虽然只是会使用,但是能使用起来,说明成长了!

目录

1.为什么不使用UDP或者TCP,而选择redis通信

2.安装redis环境(windows)

3.嵌入式设备中redis适配

下载资源

二、环境

windows10

qt5.7

python3.8

redis5.0.14.1

三、正文

1.为什么不使用UDP或者TCP,而选择redis通信

直接使用 TCP 或 UDP 进行通信

优点

简单直接:实现相对简单,不需要额外安装和配置 Redis 服务。使用标准的网络编程接口,如 Python 的socket库和 Qt 的QTcpSocket、QUdpSocket类,就可以快速搭建起通信机制。

轻量级:没有额外的中间件依赖,减少了系统的复杂度和资源消耗。对于简单的通信需求,TCP 或 UDP 可以提供足够的性能。

灵活性高:可以根据具体需求自定义通信协议,能够更好地适应不同的应用场景。

缺点

缺乏数据共享:TCP 和 UDP 主要用于传输数据,不提供数据共享和存储功能。如果需要在多个程序之间共享数据,需要自己实现数据存储和同步机制。

缺乏消息队列:对于异步消息处理和任务调度,TCP 和 UDP 没有内置的消息队列功能,需要自己实现队列机制。

可靠性和扩展性有限:在处理大量并发连接和高并发请求时,TCP 和 UDP 的可靠性和扩展性可能会受到限制。

使用 Redis 进行通信

优点

数据共享:Redis 是一个内存数据库,支持多种数据结构(如字符串、哈希、列表、集合等),可以方便地在多个程序之间共享数据。例如,Qt 程序和 Python 程序可以同时访问和修改 Redis 中的数据,实现数据的实时同步。

消息队列:Redis 提供了消息队列功能,如LIST数据结构可以用作简单的消息队列。可以使用LPUSH和RPOP等命令实现消息的发布和订阅,方便实现异步消息处理和任务调度。

高并发处理:Redis 是单线程的,通过 I/O 多路复用技术实现高并发处理。它可以处理大量的并发连接和高并发请求,适合用于分布式系统和高并发场景。

持久化:Redis 支持数据持久化,可以将内存中的数据保存到磁盘上,防止数据丢失。在程序重启后,可以从磁盘中恢复数据,保证数据的安全性和可靠性。

分布式锁:Redis 提供了分布式锁功能,可以用于解决多个程序之间的并发访问问题。例如,在多个程序同时访问共享资源时,可以使用 Redis 的分布式锁来保证资源的独占性。

缺点

复杂性增加:需要额外安装和配置 Redis 服务,增加了系统的复杂度和维护成本。

性能开销:由于 Redis 是一个独立的服务,数据的读写需要通过网络进行,会引入一定的性能开销。

总结

如果你的通信需求比较简单,只需要进行简单的数据传输和交互,直接使用 TCP 或 UDP 进行通信是一个不错的选择。如果你的应用场景需要数据共享、消息队列、高并发处理等功能,使用 Redis 进行通信可以带来更多的便利和优势。

2.安装redis环境(windows)

首先确保python环境和QT环境都是可以正常运行的

独立测试启动程序都没有问题

之后安装redis服务软件

2.1Windows电脑环境安装(windows、qt和python都要安装redis环境)

1.Windows安装redis

下载Redis-x64-5.0.14.1.msi文件进行安装。此种方式不仅会将Redis安装目录添加到系统环境变量,还会安装一个Redis系统服务。双击msi安装

参考链接https://blog.csdn.net/collman/article/details/141638356

参考链接Windows下Redis的安装和使用 - 哔哩哔哩

修改redis.windows.conf文件,504行添加requirepass 123456

使用powershell终端,进入redis安装目录, cd D:/LenovoSoftstore/Install/redis

启动服务,网上有的直接发送redis-server,我这需要发送./redis-server

验证成功

执行启动redis

cd D:/LenovoSoftstore/Install/redis

redis-server --service-start

查看redis运行状态

tasklist /FI "IMAGENAME eq redis-server.exe"

测试服务运行状态发送 redis-cli,之后输入set m_int 10返回OK在输入get m_int返回10

获取已经开启的字段列表,命令keys *  查看列表key键值get xxx

详细的redis用法继续上网查吧,分什么订阅和发布,好多模式,这里只是简单测试

2.Qt安装redis

qt调用redis有很多种方式,有的要把redis打包动态库调用,有的要引用一堆文件,资料很少,最终在网上下载找出一种类似调用开源第三方控件的方式,把redis的源码嵌入到程序中,不受编译环境限制,这样qt程序无论时在window下测试还是在虚拟机中交叉编译都可以通过,最终也可以在目标机中运行,程序见test_redis_py_qt.rar重新用AI整合联调python测试

验证,开启redis服务后redis-server --service-start运行qt程序

连接成功

关闭redis服务后redis-server --service-stop运行qt程序

提示错误信息,qt与windows的redis连接交互成功

3.python安装redis

使用命令安装pip install redis

使用pip list查看列表

测试python是否能够调用redis,使用powershell的cd命令进入到测试程序目录

开启redis服务后redis-server --service-start

执行python pytest_enviroment.py(是一个环境测试程序,不是整体的测试程序)

关闭redis服务后redis-server --service-stop

执行python pytest_enviroment.py

报一堆错误信息,反正就是失败

4.整体测试

上面测试都是简单的测试是否能连接,整体测试是将三者结合起来一起测试通信,首先redis服务开启,之后运行qt程序和python程序,qt程序就是可执行文件,双击运行即可,python程序开启5个控制台,都进入到程序目录,执行python xxx.py命令启动程序,之后进行测试

开启服务redis-server --service-start

进入python程序目录cd xxx

启动qt程序

启动python程序

Numpy不能版本太高,要在1.24以下,下面命令降级numpy,否则有俩py程序运行异常

pip install numpy==1.23.5 -i https://mirrors.aliyun.com/pypi/simple/

继续启动程序

python pytest_redis_numpy.py

python pytest_redis_pandas.py

python pytest_redis_tensorflow.py

python pytest_redis_scikitlearn.py

python pytest_redis_matplotlib.py

全部启动成功在终端中循环运行,并打印信息

之后用qt程序依次点击上方的测试按键,会将消息发送给redis,之后python程序监听redis的message消息,处理并返回相应的数据给redis,qt程序订阅redis的消息就会在线程中查询到,之后在textedit显示出来,qt程序订阅了必须用线程处理,否则程序会卡死。

测试成功图,qt程序按下按键py程序收到后有不同的打印信息,最后qt程序窗口显示内容

服务一停,全挂!!!redis-server --service-stop

目前qt程序和python程序在redis服务异常关闭时都会停止运行,这点暂时不处理,先保证环境都是正常启动运行

2.2.嵌入式设备中redis适配(linux系统、qt和python都要安装redis环境)

Ubuntu开发环境(qt安装redis环境)

得益于我选用的方法是将redis源码内嵌到qt工程中,不需要单独打包编译动态库和依赖系统环境,所以直接将qt源码放在虚拟机的交叉编译环境,咔嚓一编译,咔擦直接生成程序

也能运行起来,就是环境没配置完,缺少环境,下面继续

1.麒麟系统安装redis

sudo apt install redis-server

之后创建自启服务文件

sudo vim /etc/systemd/system/redis.service

内容如下,如果已经有内容了就不用创建了,退出即可

[Unit]
Description=Redis In-Memory Data Store
After=network.target[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
Type=forking[Install]
WantedBy=multi-user.target

之后执行命令设置启动

sudo systemctl daemon-reload

sudo systemctl enable redis

sudo systemctl start redis

验证启动状态

sudo systemctl status redis

# 应显示 "active (running)"

重启后在查询仍然已经启动

2.Qt安装redis

程序实现,无需安装,同上述windows方法

3.python安装redis

使用命令安装pip install redis

使用pip list查看列表

一看已经有了,母鸡到什么时候安装的

测试python pytest_enviroment.py

很ok

4.整体测试

将程序放在麒麟系统中,权限一给 chmod 777 *

先手动运行(不能命令运行)(又可以命令运行了,趁热打铁把这个问题也解决了,嘿嘿)

export DISPLAY=:0

./test_redis_py_qt

程序成功运行起来并连接redis成功(此处有掌声,截图是从远程桌面截的)

挨个按键点击一次,都没有问题

接下来就是开启python程序

python pytest_redis_numpy.py

python pytest_redis_pandas.py

python pytest_redis_tensorflow.py

python pytest_redis_scikitlearn.py

python pytest_redis_matplotlib.py

好的!所有程序都可以正常运行,这个环境安装的不错,鼓掌

全部程序都在运行,qt程序挨个点两遍测试

还是远程桌面截图,嘿嘿

关闭服务(这里与window命令不同)sudo systemctl stop redis

同样qt程序和python程序在redis服务异常关闭时都会停止运行,这点暂时不处理,先保证环境都是正常启动运行

四、结语

下载资源说明:

资源内部由window下的redis安装包,有qt使用redis的源码包,不使用网上大部分的打包动态库的方式,而是使用调用redis源码文件的形式,好处就是qt内嵌redis的工程可以任意移植到其他平台交叉编译,因为我就是这个需求,在window下只是测试,实际我的需求环境是银河麒麟系统下redis服务,负责多个程序之间的数据通信交互,有qt的程序和python的程序,如果直接用qt调用python程序,缺点很多,很卡,很慢,懂得都懂,要不也不会研究redis了

下载资源点此,有惊吓🤭

相关文章:

qt之使用redis与其他程序(python)交互同通信

一、前言 有需求,趁热调试出了嵌入式系统的算法环境安装和远程桌面以及一些其他的之前一直未调试出搁置的功能,趁热继续调试进阶功能redis通信,redis与sqlite各有千秋,redis可以作为在嵌入式系统下多个程序之间相互通信的中间件&…...

Pycharm(七):几个简单案例

一.剪刀石头布 需求:和电脑玩剪刀石头布游戏 考察点:1.随机数;2.判断语句 import random # numrandom.randint(1,3) # print(num) # print(**30) #1.录入玩家手势 playerint(input(请输入手势:(1.剪刀 2.石头 3&…...

05.AI搭建preparationの(transformers01)BertTokenizer实现分词编码

一、下载 bert-base-chinese镜像下载 二、简介作用: 模型每个参数占用的字节大小模型大小模型大小层数头数GPT-14 个字节的 FP32 精度浮点数117M446MB1212GPT-22 个字节的 FP161.5亿到1.75亿0.5GB到1.5GB4816GPT-32 个字节的 FP161.75万亿(17500亿&a…...

Perl 环境安装指南

Perl 环境安装指南 引言 Perl是一种广泛使用的解释型、动态编程语言,以其强大的文本处理能力和灵活性著称。本文将为您详细介绍Perl环境的安装过程,包括系统要求、安装步骤以及注意事项。 系统要求 在安装Perl之前,请确保您的计算机满足以下基本要求: 操作系统:Window…...

Visual Studio中创建和配置设置文件(Settings.settings) - 详细步骤指南——待调试

#在Visual Studio中创建和配置设置文件(Settings.settings) - 详细步骤指南 在Visual Studio中创建和配置应用程序设置文件,用于保存用户上次输入的值。 第一步:添加设置文件 1. **打开你的项目**:在Visual Studio中打开你的AutoCAD插件项目 …...

Nginx的时钟精度陷阱:request_time与upstream_response_time差异分析

在elasticsearch 采集nginx日志分析的场景下发现, request_time 小于upstream_response_time ,于是才有了这边文章。 在 Nginx 中,upstream_response_time 和 request_time 使用不同的系统时钟和精度机制来记录时间,这可能导致 u…...

参加李继刚线下活动启发:未来提示词还会存在吗?

上周六,我参加了李继刚老师组织的线下活动。 现场干货满满,尤其是关于 AI 时代提示词的价值、与 AI 沟通的艺术等话题,李老师的分享如同醍醐灌顶,让我对 AI 人机协作有了更深的理解。 将几点核心收获整理出来,与大家…...

C++作用域辨识详解

在 C 中,作用域(Scope)定义了变量、函数、类等标识符的可见性和生命周期。理解作用域对于编写清晰、高效的代码至关重要。以下是 C 中作用域的详细分类和说明。 1. 全局作用域(Global Scope) 全局作用域是指在所有函…...

MYTOOL-记事本

一、前言 目录 1.原型设计 2.程序实现 3.最终界面说明 二、环境 windows10 每个软件工具前期会设计大概的原型,我设计的原型工具使用Axure RP9,很不错的一个设计工具 三、正文 1.原型设计 2.程序实现 3.最终界面说明 四、结语...

混合知识表示系统框架python示例

前文我们已经深入学习了框架表示法、产生式规则和一阶谓词逻辑,并对它们进行了深度对比,发现它们在不同的应用场景下各有优缺点。 一阶谓词逻辑适合复杂逻辑推理场景,具有数学定理证明、形式化系统规范的优点;产生式规则适合动态决策系统,支持实时决策(如风控、诊断),规…...

Vue2——常用指令总结、指令修饰符、v-model原理、computed计算属性、watch监听器、ref和$refs

文章目录 一、概念理解二、指令1. 常用内置指令总结2. 常用指令修饰符3. 自定义指令4. v-model原理表单类组件封装 三、补充1. computed计算属性2. watch监视器3. ref和$refs 一、概念理解 【事件处理函数】 事件处理函数应该写到一个跟data同级的配置项(methods&a…...

2025-3-29算法打卡

一,回文判定 1.题目描述: 题目描述 给定一个长度为 nn 的字符串 SS。请你判断字符串 SS 是否回文。 输入描述 输入仅 11 行包含一个字符串 SS。 1≤∣S∣≤1061≤∣S∣≤106,保证 SS 只包含大小写、字母。 输出描述 若字符串 SS 为回…...

【网络编程】搭建一个简单的UDP通信服务器和客户端

🦄个人主页:修修修也 🎏所属专栏:网络编程 ⚙️操作环境:VS Code (操作系统:Ubuntu 22.04 server 64bit) 目录 搭建UDP服务器 搭建UDP客户端 其余工程文件 主函数文件Main.cc 日志打印文件Log.hpp Makefile文件 结语 搭建UDP服务器 搭建UDP服务器的主要流…...

数据分析概述

数据分析:用适当的分析方法和挖掘方法对收集来的数据进行研究总结,提取有用的信息,形成结论并支持决策的过程。 一.数据分析的分类 1.业务描述性分析。以数据为分析对象,以探索数据内的有用信息为主要途径,以解决业务…...

【C#】C#字符串拼接的6种方式及其性能分析对比

C#字符串拼接的6种方式及其性能分析对比 前言BenchmarkDotNet拼接基础数据操作符$内插字符串String.FormatString.ConcatString.JoinStringBuilder性能基准对比测试完整代码少量字符串拼接大量字符串拼接 前言 在C#编程中字符串拼接是一种常见且基础的操作,广泛应用…...

图解AUTOSAR_SWS_SPIHandlerDriver

AUTOSAR SPI Handler/Driver 详解 AUTOSAR标准下的SPI通信模块详细设计与实现 目录 AUTOSAR SPI Handler/Driver 详解 目录1. AUTOSAR SPI模块概述 1.1 SPI模块的作用1.2 SPI模块在AUTOSAR中的位置1.3 SPI模块整体架构 2. SPI模块状态机 2.1 状态定义2.2 状态转换2.3 子状态机…...

华为HCIE网络工程师培训选机构攻略

从 官方授权机构 到 性价比黑马,结合价格、师资、通过率等维度,为你筛选出最适合的培训方案。 一、华为官方授权机构(优先推荐) 华为官方授权机构拥有 真机实验环境考官级讲师,适合预算充足、追求高通过率的学员。 机…...

【银河麒麟系统常识】命令:dotnet --list-sdks(列出已安装的 .NET SDK 版本)

命令&#xff1a; dotnet --list-sdks 功能 列出当前系统中所有已安装的 .NET SDK 版本&#xff1b; 返回值规则 # 1. 格式&#xff1a;<版本号>[<安装路径>]&#xff1b; # 2. 排序&#xff1a;按版本号从低到高排序&#xff1b;示例...

【数据仓库】湖仓一体的核心建模理论

湖仓一体&#xff08;Lakehouse&#xff09;是一种融合数据湖与数据仓库优势的新型架构&#xff0c;其建模理论在传统数据仓库与数据湖基础上进行了扩展和创新。以下从核心建模理论、关键技术支撑及与传统架构的差异三个维度进行解析&#xff1a; 一、湖仓一体的核心建模理论 …...

Go 语言规范学习(3)

文章目录 Properties of types and valuesRepresentation of valuesUnderlying types【底层类型】Core types【核心类型】Type identityAssignabilityRepresentabilityMethod sets BlocksDeclarations and scopeLabel scopesBlank identifierPredeclared identifiersExported i…...

基于django优秀少儿图书推荐网(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;图书推荐网当然不能排除在外。本次开发的优秀少儿图书推荐网是在实际应用和软件工程的开发原理之上&#xff0c;运用Python语言、爬虫技术…...

CS2 DEMO导入blender(慢慢更新咯)

流程&#xff1a;cs2-sourcefilmmaker-blender 工具&#xff1a;cs2tools&#xff0c;cs2manager&#xff0c;blender&#xff0c;blender插件sourceio&#xff0c;source2viewer 导入sfm 工具界面 选择这个 sourceio插件 sourceIO其中新版本导入相机路径不见了&#xff0c…...

SVTAV1函数分析-svt_av1_cost_coeffs_txb

一 函数作用 函数svt_av1_cost_coefss_txb是一个与AV1视频编码相关的函数&#xff0c;主要用于计算变换块(Transform Block)中系数的成本(Cost)。在视频编码中&#xff0c;特被是在AV1编码中&#xff0c;计算系数的成本对于模式决策(Mode Decision)和熵编码(Entropy Coding) 等…...

【Linux加餐-验证UDP:TCP】-windows作为client访问Linux

一、验证UDP-windows作为client访问Linux UDP client样例代码 #include <iostream> #include <cstdio> #include <thread> #include <string> #include <cstdlib> #include <WinSock2.h> #include <Windows.h>#pragma warning(dis…...

qt+opengl 加载三维obj文件

1前面我们已经熟悉了opengl自定义顶点生成一个立方体&#xff0c;并且我们实现了立方体的旋转&#xff0c;光照等功能。下面我们来用opengl来加载一个obj文件。准备我们首先准备一个简单的obj文件&#xff08;head.obj&#xff09;。资源在本页下载 2 在obj文件里面&#xff0c…...

日报日报流量分析

快捷键 CtrlK&#xff0c;选择需要抓包的网卡 CtrlF可以进行关键字搜索 CtrlM&#xff0c;标记数据包 CtrlShiftN跳到标记处 查看包有多少协议Protocol Hierarchy&#xff08;协议分级&#xff09; 搜了一下TCP协议&#xff0c;是互联网最基本的协议&#xff0…...

SQL:CASE WHEN使用详解

文章目录 1. 数据转换与映射2. 动态条件筛选3. 多条件分组统计4. 数据排名与分级5. 处理空值与默认值6. 动态排序 CASE WHEN 语句在 SQL 中是一个非常强大且灵活的工具&#xff0c;除了常规的条件判断外&#xff0c;还有很多巧妙的用法&#xff0c;以下为你详细总结&#xff1a…...

在 Unreal Engine 5 中制作类似《鬼泣5》这样的游戏时,角色在空中无法落地的问题可能由多种原因引起。

系列文章目录 文章目录 系列文章目录前言一、实现步骤二、涉及到的蓝图三、如何把敌人击飞到空中 前言 在 Unreal Engine 5 中制作类似《鬼泣5》这样的游戏时&#xff0c;角色在空中无法落地的问题可能由多种原因引起。 一、实现步骤 角色碰撞设置 确保角色的碰撞组件&…...

mapbox进阶,添加鹰眼图控件

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️mapboxgl-minimap 鹰眼控件二、🍀添加…...

k8s污点与容忍

k8s污点与容忍 k8s污点管理常用命令effect标记值查看污点添加污点删除污点 node污点与容忍污点容忍yaml示例容忍放大基于污点的驱逐驱逐时排除指定服务 设置master调度设置master尽量不调度允许master节点调度pod恢复Master Only状态将node标记为不可调度状态(节点警戒)设置nod…...

算法刷题记录——LeetCode篇(9.1) [第801~810题]

更新时间&#xff1a;2025-03-29 算法题解目录汇总&#xff1a;算法刷题记录——题解目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 801. 使序列递增的最小交换次数…...

AOA与TOA混合定位,MATLAB例程,自适应基站数量,三维空间下的运动轨迹,滤波使用EKF

本代码实现了一个基于 到达角(AOA) 和 到达时间(TOA) 的混合定位算法,结合 扩展卡尔曼滤波(EKF) 对三维运动目标的轨迹进行滤波优化。代码通过模拟动态目标与基站网络,展示了从信号测量、定位解算到轨迹滤波的全流程,适用于城市峡谷、室内等复杂环境下的定位研究。 文…...

【vllm/瞎折腾】在内网wsl上安装vllm并尝试多节点部署(失败了)

目录 说在前面miniconda安装外网创建虚拟环境创建节点一的虚拟环境创建节点二的虚拟环境 内网配置环境配置节点一的环境配置节点二的环境 vllm多节点配置节点一(主节点)配置节点二配置 部署LLM(失败)补充&#xff1a;wsl2设置ulimit补充&#xff1a;wsl安装libcuda补充&#xf…...

Mayo Clinic Platform在人工智能医疗领域的现状及启示意义研究

一、引言 1.1 研究背景与意义 在科技飞速发展的当下,人工智能(AI)已逐渐渗透至各个行业,医疗领域作为关乎人类生命健康的重要领域,也迎来了人工智能技术带来的深刻变革。人工智能医疗,作为人工智能与医疗行业深度融合的产物,正重塑着全球医疗的格局。 从全球范围来看,…...

k8s部署教程

Kubernetes 1. 使用Kubernetes部署Web服务器 ​ 我们的目标是部署三个实例&#xff0c;可以让用户直接访问。三个实例&#xff0c;这样即便一个崩溃了&#xff0c;也还有两个&#xff0c;比较不容易出问题。实际中你要根据自己的业务来判断。也就是说&#xff0c;我们需要一个…...

java基础:常见类和对象

1.常见类和对象&#xff1a; java.lang.Object类&#xff0c;Java中的每个类都直接或间接地继承自Object类&#xff0c;如果没有明确指定一个类继承另一个类&#xff0c;那么它的默认父类就是Object类&#xff1b; 例如多态&#xff1a; package java_jichu;public class ja…...

了解遗传算法的Matlab程序的奥妙之处

老板突然想要了解遗传算法的Matlab程序,我们需要先理清楚他们的需求。首先,老板可能对遗传算法有一定的了解,但不太清楚如何在Matlab中具体实现。他可能是一个学生或者研究人员,需要应用到某个项目中,比如优化问题。老板可能希望得到一个结构清晰的步骤说明,以及具体的代…...

Java学习------源码解析之StringBuilder

1. 介绍 String中还有两个常用的类&#xff0c;StringBuffer和StringBuilder。这两个类都是专门为频繁进行拼接字符串而准备的。最先出现的是StringBuffer&#xff0c;之后到jdk1.5的时候才有了StringBuilder。 2. StringBuilder解析 从这张继承结构图可以看出&#xff1a; S…...

【漫话机器学习系列】163.方差膨胀因子(Variance Inflation Factor, VIF)

方差膨胀因子&#xff08;Variance Inflation Factor, VIF&#xff09;详解 1. 什么是方差膨胀因子&#xff1f; 方差膨胀因子&#xff08;Variance Inflation Factor, VIF&#xff09;是一种用于衡量回归分析中多重共线性&#xff08;Multicollinearity&#xff09;程度的指…...

蓝桥杯省模拟赛 字符串拼接

问题描述 给定四个字符串 a,b,c,d&#xff0c;请将这四个字符串按照任意顺序依次连接拼成一个字符串。 请问拼成的字符串字典序最小是多少&#xff1f; 输入格式 输入四行&#xff0c;每行包含一个字符串。 输出格式 输出一行包含一个字符串&#xff0c;表示答案。 样例…...

前端路由守卫与后端权限验证,仅使用路由守卫是否安全?

前后端分离架构的安全原则 后端必须对所有 API 接口进行权限验证前端仅负责用户界面的重定向安全策略应始终由后端最终决定 问题1&#xff1a;前端设置路由守卫是否可以阻挡用户直接通过URL访问&#xff1f;&#xff1f;&#xff1f; 前端路由守卫&#xff08;如 Vue Router …...

React-nodejs 练习 个人博客

1.主要功能模块&#xff1a; 文章管理&#xff1a;CRUD操作 用户系统&#xff1a;注册、登录、权限控制评论系统&#xff1a;文章评论功能 2.技术栈&#xff1a; 前端&#xff1a;React Ant Design React Router后端&#xff1a;Express MongoDB 通信&#xff1a;RESTful…...

AI三大主义 和 深度学习三大主义

在人工智能&#xff08;AI&#xff09;研究领域&#xff0c;"三大主义"通常指三种核心方法论或思想流派&#xff0c;它们代表了不同的技术路径和哲学观点。以下是主流的划分方式&#xff1a; 1. 符号主义&#xff08;Symbolicism&#xff09; 核心思想&#xff1a;智…...

Linux实现生产者消费者模型(基于阻塞队列)

目录 概念及优势 代码实现 概念及优势 生产者消费者模型是一种用于线程同步的模型&#xff0c;在这个模型中有两种角色&#xff0c;生产者生产数据&#xff0c;消费者消费数据。有三种关系&#xff0c;生产者与生产者&#xff0c;消费者与消费者&#xff0c;生产者与消费者。…...

UE5 UE4 右键/最大化-菜单-不显示/闪/黑色/黑屏--修复方法

先关闭UE5 、UE4 编辑器。 进入这个网站&#xff1a;https://nvidia.custhelp.com/app/answers/detail/a_id/5157 网速慢&#xff0c;换成这个下载&#xff1a;https://download.csdn.net/download/qq_21153225/90546310 下载&#xff1a;mpo_disable.reg 的文件 只双击“mpo…...

[ C语言 ] | 从0到1?

目录 认识计算机语言 C语言 工欲善其事必先利其器 第一个C语言代码 这一些列 [ C语言 ] &#xff0c;就来分享一下 C语言 相关的知识点~ 认识计算机语言 我们说到计算机语言&#xff0c;语言&#xff0c;就是用来沟通的工具&#xff0c;计算机语言呢&#xff1f;就是我们…...

4.训练篇2-毕设篇

resnet # 1. 从 torchvision 中加载预训练的 ResNet18 模型 # pretrainedTrue 表示使用在 ImageNet 上预训练过的参数&#xff0c;学习效果更好 base_model_resnet18 models.resnet18(pretrainedTrue)# 2. 获取 ResNet18 模型中全连接层&#xff08;fc&#xff09;的输入特征…...

Ubuntu 系统中,每日健康检查

一、手动检查命令&#xff08;基础项&#xff09; 1. 系统资源监控 内存使用&#xff1a; free -h # 查看内存和交换空间使用情况 cat /proc/meminfo | grep -i "memavailable" # 查看可用内存CPU 负载&#xff1a; top -n 1 -b | grep "load ave…...

#CX# UVM中的virtual sequence 和 virtual sequencer 的用途

在UVM中,Virtual Sequence(虚拟序列) 的核心用途是协调多个物理Sequencer上的Sequence执行,以实现跨接口、跨组件的复杂事务同步和场景控制。 1. 核心用途 多接口协同测试 当验证场景需要多个接口(如DUT的AXI、I2C、UART接口)同时或按特定顺序发送事务时,Virtual Seque…...

vue:突然发现onok无法使用

const that this;this.$confirm({title: "修改商品提示",content: "如果当前商品存在于商品活动库&#xff0c;则在商品活动库的状态会下架",onOk: function () {that.submitForm();}}); 突然发现 this.$confirm无法进入onok 最终发现是主题冲突&#x…...