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

5.4 webrtc的线程

那今天呢?我们来了解一下webrtc中的threed,首先我们看一下threed的类,它里边儿都含了哪些内容?由于threed的类非常大啊,我们将它分成两部分。

那第一部分呢,是我们看threed的类中都包含了哪些数据之后呢?我们再来看看threed的类中包含了哪些方法?那首先我们来看一下数据,之前呢,我在常见的线程模型中,曾经向你介绍过,一般呢,我们在使用线程的时候呢,都要增加一些队列,对吧?

对于web rtc的thread也不例外。那在这个类中呢,首先包含了一个message list,这个对象那通过这个对象呢,我们就知道threed的它是包含队列的。也就是说,所有需要线程处理的消息呢,都要先入队。

之后呢,再由这个线程一个一个的进行处理,这样可以保证它的每一个message都可以得到响应,并且呢,是有序的响应。对于y8 tc的threed的类来说呢,除了message之外,它还有一个delay的message处于这里边儿的所有消息呢,都是延后处理的消息。

那这个我们简单了解一下就OK了,所以从这里我们也可以知道啊,对于外边汽车来说,它除了有一个消息队列之外呢,还包括了一个延迟处理消息的队列,从这一点上我们就可以看出所有的类,它的功能是非常强大的。好,

那再接下来的一个成员呢?是security section,那这就是临界区了,对吧?它的作用呢,是用于防止访问队列时候发生冲突,也就是说,无论是message还是delete message。

都要根据临界区进行插队入队,当我们要往这个队列中塞数据的时候呢,首先获取临界区。获取到临界区之后呢,再插入数据。那取数据呢,也是同样道理。也要先获取临界区之后呢,才能从消息队列中取出消息,那这是非常简单的道理,这是第一部分数据。

第二部分数据呢,是对于外部rtc的threed的类来说,它是可以进行时间处理的,所以它包含了一个socket server。socket server可能会给大家带来一些困扰,同学可能会觉得,哎,那为什么一个客户端的程序会有一个socket server呢?其实这里的socket server,它的功能呢,就是用于事件处理,那之所以取这个名字,

是因为一般情况下,我们是在服务端使用事件处理。所以在wrtc的开发者呢,可能是沿用了这个习惯,所以给它起了一个叫socket server,实际你就知道它是一个事件处理类就OK了。

好,那最后一部分数据呢?就是线程那我们的threed的类中包含了,我们真正处理数据的线程。在WINDOWS下呢,是handle那在linux下呢,它这个类型是thread ctrl t好,这是数据部分,那接下来呢,
在这里插入图片描述

我们再看看。threed的类中的重要方法,它里边包括的方法非常多。那我讲重要的分成了三部分,
在这里插入图片描述

那第一大部分呢?我们先看后边儿就是对线程的控制启动、运行、以及线程的停止。这三个函数呢,是我们每一个线程都需要有的,对吧?好,那上面的这些方法呢,又可以分成两部分,其中get与pick。是用于对队列的操作,从队列中取数据,

而post post ta sks ks and invoke,那这些呢?是用于线程切换的,我们也知道,为了提高效率,它采用了多线程,不同的线程呢,完成不同的工作。线程之间呢,就要做各种的切换。从a线程切到b线程b线程切到c线程,这都是经常发生的事儿,如何才能进行高效的切换呢?实际上,对于y8 tc的类来说,

它提供了很多方法,那这里我简单的列出了几个。post post task send invoke对吧?那对于这些API的具体的作用,我会在后边的课程中呢给你做详细介绍。那现在我们只要知道,对于web rtc的threed的来说,它的方法呢,也包括了三大类。

第一大类呢,是对队列的获取。第二大类呢,是线程的切换。第三大类呢,是线程的控制。

那以上呢,就是threed的类的一些重要数据和方法,接下来呢,我们看关于threed的几个要点。第一个要点呢,我们要知道web rtc中的它thread是一个对象,并不是一个真正运行的线程。但是在threed的对象中呢,是持有了现成的句柄。这个我们要知道,比如我们在代码中看到某某某threed的,你就认为它是一个线程了,并不是对吧。

它只是一个对象。那具体这个线程是什么时候启动的?它是怎么运行的?我们还要根据里边儿的内容去详细的看才能知道。这是我们第一个要知道的,

那第二个是web rtc中的线程,它是有队列的,刚才我们已经介绍到了,对吧?

第三个呢是web rtc中的线程,是以事件驱动的。也就是说,外拔tc的线程呢?当收到事件通知之后,才去队列中获取消息。那么,拿到消息之后呢?再进行具体的操作。

它是这样一个逻辑,这种线程的驱动方式肯定要比我们轮巡的方式要好的多,对吧?如果我们采用轮巡的方式,不停的去队列中。轮询是否有数据,那它这种性能呢?肯定是低效的,而事件的方式呢?是非常高效的。这是关于threed的几个要点,那了解了threed的几个要点之后呢?下面我们来看看线程的创建。那首先我们要知道,

对于不同的平台,它创建线程的方法肯定是不一样的,每个平台有每个平台。不同的API那像linux和mac,它使用的都是p方法,也就是p threed的create。通过这个API来创建线程,而对于WINDOWS来说呢,它使用的是create threed的这个方法来创建线程。这一点呢,其实大家应该都非常了解了,对吧?

好,那接下来呢,我们就来看一下代码,了解一下y八二tc的threed的类,它长什么样子?我们切换到WINDOWS平台。那首先啊,我们还是打开peer connection client这个项目,那在这个项目中呢,
在这里插入图片描述

我们找到内文件。在闷文件中的温闷方法中呢?我们看第80行,那这个呢?就是一个。threed的对象对吧?它是一个win 32 threed的,也就是说对于外8 tc来说,不同的平台,

它都对threed的做了一层封装,他们这些子类呢,都继承自。threed的类,我们可以跳进去看一下啊,这个时候呢,它就查找到两个地方,一个是点h,一个是点CC,对吧?我们先到点h。OK,从这里我们可以看到啊,135行win三二threed的就继承自threed的,那我们继续进入到threed的的定义。
在这里插入图片描述

就是在这里,那在threed的点h中的168行就是threed的类的定义,我们可以简单过一下,看看这个类它是怎么定义的?那首先呢,它是继承自t ask que base这个类对吧?那在这个类中呢?实际只定义了一些方法,这里呢?我先不看了。后边我们需要的时候,我们再看这个类,它是怎么定义的?好,我们可以简单过一下,

在这里插入图片描述
那在一开始的时候呢,定义了几个构造函数,那我们可以根据情况呢,在创建的对象的时候给它传入不同的参数。有socket server指针型的,还有这种智能指针型的,还有呢指针型加一个。doin it这个参数了。智能指针型加do I it这个参数对吧?那它支持的构造函数类型呢?还是比较多的好,再往下。那再接下来的这两个方法呢,实际是创建s对象,它提供了两个静态的方法,
在这里插入图片描述

一个是create with socket server。一个呢是create,那这两种方法呢?都可以创建出threed的对象,后边儿呢?我们这两种方法都会用到,到时候呢,我们再看看它们的细节。再接着往下走,接下来呢,是threed的类中的子类,这些子类呢,我们暂时先不管,就直接跳过去是吧?之后呢,
在这里插入图片描述

是threed的类控制线程的一些方法,包括quit is quitting。restart都是定义在这里,在后边呢,是与队列相关的,从队列中获取消息,一个get一个pick。那这两种方法的区别,后边儿我们也会做详细介绍好,再往下就是post post delayed对吧?等等,一系列的与线程切换相关的,那这些呢,我们就不详细看了,我们继续往下走。

这里还有start。stop都是用于控制线程的启动与停止的。runs end,刚才我们已经介绍了,那后边呢?我们还会对这个方法呢?做详细介绍。还有invoke invoke呢,包括多种重载。可以存放不同的参数。实际上,关于threed的类中的很多细节呢,我们都可以看一些注释,在这个threed的类中呢,包含了大量的注释。

这些注释呢,其实对于我们阅读代码都是有非常重要意义的,所以大家可以仔细看一下这块儿的注释。好再往下呢,是post task对吧?post delay task可能这些方法呢?都是在这儿定义的好,我们继续往下啊。这些方法我们就不介绍了,那在类中呢?定义了很多的子类,那这些子类呢?也有它的用处。我们现在用不到,先给它过滤掉这个类还是非常庞大的,

对吧?大概有五六百行代码了,那再接下来呢,就是threed的类中的一些数据成员了。那我们刚才看到的message delay的message。都是在这里定义的,包括了临界区。还有用于事件处理的socket server。以及与线程关联的thread,对于线程来说呢,不同的平台是有不同的类型的。像posix,它使用的是p threed的杠t,那window呢?是使用的handle对吧?
在这里插入图片描述

那当然threed的还跟threed的manager?是有关联的,那threed manager呢?是对threed的线程的管理,那后边儿呢?我也会对threed的manager做详细的介绍。通过查看这个类啊,我们可以知道threed的类是非常庞杂的,对吧?里边包括了很多信息,但你总结起来啊,实际就几大类。

那一大类呢,是与队列相关的一大类呢,是与事件相关的,

那再有呢,就是与线程相关的,这些数据对吧?除了这些之外呢,对于它提供的方法实际也是类似的,

首先是控制线程的,从队列中获取消息的。

线程的切换以及事件的处理对吧?就是这样几大类,

如果我们光看这个代码没有对它进行分类的话,我们会觉得threed的类。太庞杂了,看着都头疼,对吧?但如果你把它按分类进行划分之后,

你就觉得这个类其实也没有那么复杂。归结起来,就是对队列的处理,对事件的处理,对线程的处理,无非就是这几项,对吧?那以上呢,就是我们对web rtc threed的类的一些简要的介绍。那么,了解了这些知识之后呢?

我们后边再逐步的深入,让你详细的知道web rtc是如何进行。线程控制的线程管理的,当我们最后讲完这一章的内容之后呢,

你就知道y八二tc它的线程到底是如何工作的了。好,那我们今天的课程呢?就到这里有任何的问题呢,您可以到讨论区或者是群里去给我留言,我在那里呢,给你做相应解答好,谢谢。

相关文章:

5.4 webrtc的线程

那今天呢?我们来了解一下webrtc中的threed,首先我们看一下threed的类,它里边儿都含了哪些内容?由于threed的类非常大啊,我们将它分成两部分。 那第一部分呢,是我们看threed的类中都包含了哪些数据之后呢&a…...

vscode | linux | c++ intelliense 被弃用解决方案

每日一句,vscode用的爽是爽,主要是可配置太强了。如果也很会研究,可以直接去咸鱼接单了 废话少说,直接整。 用着用着说是c intelliense被弃用,很多辅助功能无法使用,像查看定义、查看引用、函数跳转、智能提…...

HPE服务器常见报错信息以及解决方案

General controller issues 常规控制器问题 Controllers are no longer redundant 控制器不再冗余 HPE Dynamic Smart Array B140i drives are not found when RAID mode is disabled 禁用 RAID 模式时找不到 HPE 动态智能阵列 B140i 驱动器 Data located on drives accessed i…...

尚硅谷宋红康MySQL笔记 3-9

我不会记录的特别详细 大体框架 基本的Select语句运算符排序与分页多表查询单行函数聚合函数子查询 第三章 基本的SELECT语句 SQL分类 这个分类有很多种,大致了解下即可 DDL(Data Definition Languages、数据定义语言),定义了…...

Leetcode.2337 移动片段得到字符串

题目链接 Leetcode.2337 移动片段得到字符串 rating : 1693 题目描述 给你两个字符串 start 和 target ,长度均为 n n n 。每个字符串 仅 由字符 L、R 和 _ 组成,其中: 字符 L 和 R 表示片段,其中片段 L 只有在其左侧直接存在一…...

【vue】更改角色权限后,实现页面不刷新更改其可展示的导航菜单

登入的角色本身属于领导级别(集团权限),没有下级的不同权限: 切换不同身份(公司),以获得相应部门的不同导航菜单及权限 这里实现:更改角色权限后,实现页面 不刷新 更改…...

【G-LAB】网络工程师常用排错命令详细版

网络工程师在日常配置中难免出现各种配置错误,比如接口地址配错、掩码位数配错、接口忘记no shutdown。除去这些基础错误,在配置各种路由选择协议时也会因为网络类型、邻居类型、区域和路由器层级等各种问题使邻居无法建立、路由无法传递进而导致网络不通…...

Linux 桌面版关闭GUI桌面环境

持久打开和关闭 通过CtrlAltF1-F6快捷键进入命令行界面 执行以下命令,持久关闭Ubuntu桌面版的GUI环境: sudo systemctl set-default multi-user.target执行以下命令,持久开启Ubuntu桌面版的GUI环境 通过CtrlAltF7快捷键进入GUI界面 sudo s…...

ChatGPT能代替搜索引擎吗?ChatGPT和搜索引擎有什么区别?

ChatGPT和搜索引擎是两种在信息获取和交流中常用的工具,ChatGPT是一种基于人工智能技术的聊天机器人,而搜索引擎是一种在互联网上搜索信息的工具。尽管它们都是依托互联网与信息获取和交流有关,部分功能重合,但在很多方面存在着明…...

PHP海外代购管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 海外代购管理系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88229435 论文 https://…...

游戏反外挂方案解析

近年来,游戏市场高速发展,随之而来的还有图谋利益的游戏黑产。在利益吸引下,游戏黑产扩张迅猛,已发展成具有庞大规模的产业链,市面上游戏受其侵扰的案例屡见不鲜。 据《FairGuard游戏安全2022年度报告》数据统计&…...

基于郊狼算法优化的BP神经网络(预测应用) - 附代码

基于郊狼算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于郊狼算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.郊狼优化BP神经网络2.1 BP神经网络参数设置2.2 郊狼算法应用 4.测试结果:5.Matlab代码 摘要…...

【腾讯云 TDSQL-C Serverless 产品测评】全面测评TDSQL-C Mysql Serverless

全面测评TDSQL-C Mysql Serverless 文章目录 全面测评TDSQL-C Mysql Serverless前言什么是TDSQL-C Mysql Serverless初始化 TDSQL-C Mysql Serverless新建数据库建立数据表开启外网访问 兼容性SQL文件 导入导出navicat 直接在线传输 构建测试环境准备Python测试脚本准备 Jmeter…...

Qt应用开发(基础篇)——纯文本编辑窗口 QPlainTextEdit

一、前言 QPlainTextEdit类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,是Qt用来显示和编辑纯文本的窗口。 滚屏区域基类https://blog.csdn.net/u014491932/article/details/132245486?spm1001.2014.3001.5501框架类QFramehttps://blo…...

数据结构-->栈

💕休对故人思故国,且将新火试新茶,诗酒趁年华💕 作者:Mylvzi 文章主要内容:详解链表OJ题 前言: 前面已经学习过顺序表,链表。他们都是线性表,今天要学习的栈也是一种线…...

强训第36天

C D C 193--1100 0001 194--1100 0010 196--1100 0100 198--1100 0110 能包括全部的且最小的为 1100 0xxx xxx为主机号,站三位 B MAC地址是绑定网卡的,全球唯一 D A C D IP网段 17为网络号 所以是 40.15.1aaa aaa(7位主机号).0 因为要划分2个子网 所以…...

PyTorch bug记录

1、RuntimeError: Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor) should be the same 这个错误是因为模型的权重是在GPU上,但是输入数据在CPU上。在PyTorch中,Tensor的类型和所在的设备(CPU或GPU)需…...

js中的正则表达式(一)

目录 1.什么是正则表达式 2.正则表达式在JavaScript中的使用场景: 3.正则表达式的语法: 1.什么是正则表达式 正则表达式(Regular Expression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象通常用来查找、替换那些符…...

免费开源使用的几款红黑网络流量工具,自动化的多功能网络侦查工具、超级关键词URL采集工具、Burpsuite被动扫描流量转发插件

免费开源使用的几款红黑网络流量工具,自动化的多功能网络侦查工具、超级关键词URL采集工具、Burpsuite被动扫描流量转发插件。 #################### 免责声明:工具本身并无好坏,希望大家以遵守《网络安全法》相关法律为前提来使用该工具&am…...

使用Mybatis Plus进行DAO层开发

一、特性 Mybatis应该大家现在都知道,而且在项目中都在使用,因为这块ORM框架让大家能专心业务SQL的编写,数据库的连接,连接池的使用都不用关心,极大的提高了生产效率。 今天要给大家介绍的另外一款ORM框架&#xff0…...

Android中如何不编译源生模块

如果想让自己的app 替换系统的app 比如使用闪电浏览器替换系统的Browser 首先把闪电浏览器放到 vendor/rockchip/common/apps Android.mk LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS)LOCAL_MODULE : Lightning LOCAL_SRC_FILES : $(LOCAL_MODULE).apk LOCAL_MODULE_C…...

安装Vue_dev_tools

Vue控制台出现Download the Vue Devtools extension for a better development experience: 下载Vue_dev_tools,这里给出网盘链接,有Vue2和Vue3的,dev_tools 以Google浏览器为例 点击设置(就是那三个点)->扩展程序->管理扩…...

【数据结构入门指南】二叉树顺序结构: 堆及实现(全程配图,非常经典)

【数据结构入门指南】二叉树顺序结构: 堆及实现(全程配图,非常经典) 一、前言:二叉树的顺序结构二、堆的概念及结构三、堆的实现(本篇博客以实现小堆为例)3.1 准备工作3.2 初始化3.3 堆的插入3.3.1 向上调…...

css实现三角形的几种方法

css实现三角形的方法:1、使用边框实现三角形,利用透明边框和实色边框的组合,可以创建不同方向和大小的三角形;2、使用伪元素实现三角形,通过使用伪元素来创建一个占据父元素一半大小的实心三角形;3、使用tr…...

❤ Vue工作常用的一些动态数据和方法处理

❤ Vue工作常用的一些动态数据和方法处理 &#xff08;1&#xff09;动态拼接相对路径结尾的svg 错误写法一 ❌ 正确写法 &#x1f646; <img :src"require(/assets//amazon/svg/homemenu${index}.svg)" style"height: 20px;display: block;margin: 0 au…...

SQLite的命令用法

学习数据库直达网站 https://www.runoob.com/sqlite/sqlite-tutorial.html&#xff08;菜鸟教程&#xff09; 这里只分享&#xff0c;基础操作&#xff0c;数据库创建打开……等等 用到查菜鸟教程即可 文章目录 学习数据库直达网站创建一个数据库方式1方式2 创建一个表格插入一…...

在jupyter notebook中使用海龟绘图

首先&#xff0c;安装ipyturtle3 ref:ipyturtle3 PyPI pip install ipyturtle3然后&#xff0c;安装ipycanvas ipycanvas是一个需要安装在与JupyterLab实例相同环境的包。此外&#xff0c;您需要安装nodejs&#xff0c;并启用JupyterLab ipycanvas小部件。 所有这些都在ipy…...

密码学学习笔记(十八):Diffie–Hellman (DH) 密钥交换

DH算法是第一个密钥交换算法&#xff0c;也是第一个得到形式化描述的公钥密码算法。 群论 DH密钥交换算法基于数学中的群论&#xff0c;群论也是当今大多数公钥密码的基础。 要使集合及其运算成为一个群&#xff0c;需要满足以下性质&#xff1a; 封闭性&#xff1a;群中两…...

Linux —— 进程间通信(管道)

目录 一&#xff0c;进程间通信 二&#xff0c;管道 匿名管道 命名管道 一&#xff0c;进程间通信 进程间通信&#xff08;IPC&#xff0c;InterProcess Communication&#xff09;&#xff0c;即在不同进程之间进行信息的传播或交换&#xff1b;由于一般进程用户地址空间是…...

python常用

环境配置 conda Conda自动补全 在终端激活conda环境的时候按tab不能自动补全activate和环境名。安装后可用tab进行补全。 安装 conda-bash-completion 插件&#xff1a;GitHub 安装方法&#xff1a; conda install -c conda-forge conda-bash-completion常用命令 #创建虚拟…...

jeecg如何创建报表并配置到菜单中

当使用jeecg创建单表之后,需要进行报表显示,并把报表配置到菜单中,该如何操作呢?下面进行详细讲解。这里以课程表这张表为例进行讲解。 一.表单创建完成,并配置好菜单栏。具体步骤略,如下图: 二.创建积木报表 1.左侧边栏展开低代码开发菜单,进入报表设计器栏目 2.进…...

Servlet+JDBC实战开发书店项目讲解第12讲:会员管理功能

ServletJDBC实战开发书店项目讲解第12讲&#xff1a;会员管理功能 实现思路&#xff1a; 显示会员列表&#xff1a; 创建一个管理页面&#xff0c;用于显示所有会员的信息。在后端&#xff0c;创建一个Servlet来处理显示会员列表的请求。在该Servlet中&#xff0c;通过JDBC从数…...

java面向对象——继承以及super关键字

继承的概念 1. 被继承的类称为父类&#xff08;超类&#xff09;&#xff0c;继承父类的类都称为子类&#xff08;派生类&#xff09; 2. 继承是指一个对象直接使用另一个对象的属性和方法&#xff0c;但是能继承非私有的属性和方法&#xff1b;(1) 构造方法不能被继承。(2) 但…...

[机缘参悟-101] :IT人 - 遵从世界本源的样子,不带个人情感、道德、认知倾向,接纳一切,你就拥有无限的力量

目录 道的本义 如来的本义 观音的本义 无为而治本质是顺势而为 儒家的本质 感悟&#xff1a; 道的本义本质&#xff1a;天地的力量和运行规律 "天地以万物为刍狗"是出自《道德经》第五十章的一句话。在这句话中&#xff0c;"天地"指的是宇宙&#x…...

C++--深度理解智能指针

PS:智能指针简单应用看这里 http://t.csdn.cn/qN7IK 1.智能指针的介绍 在C中&#xff0c;智能指针有三个版本&#xff0c;分别为&#xff1a; auto_ptr unique_ptr shared_ptr 这三个版本的智能指针中&#xff0c;shared_ptr最为完善&#xff0c;auto_ptr基本上没有太大用…...

Spring Boot使用MySQL的默认连接池

笔者在近期秋招面试的时候被问到了这个问题&#xff0c;现在简单梳理一下便于后期重新回顾&#xff0c;并加深记忆。 Spring Boot 默认使用的数据库连接池是 HikariCP(开源库地址)。 HikariCP 是目前性能最好的连接池之一&#xff0c;它具有高度的性能、可靠性和可扩展性&…...

conda使用教程

Conda介绍 conda可以理解为一个工具&#xff0c;也是一个可执行命令&#xff0c;其核心功能是包管理和环境管理。包管理与pip的使用方法类似似&#xff0c;环境管理则是允许用户方便滴安装不同版本的python环境并在不同环境之间快速地切换。 conda的设计理念 conda将几乎所有…...

什么是LLM大语言模型?

什么是LLM大语言模型&#xff1f; 大语言模型&#xff08;英文&#xff1a;Large Language Model&#xff0c;缩写LLM&#xff09;&#xff0c;也称大型语言模型&#xff0c;是一种人工智能模型&#xff0c;旨在理解和生成人类语言。它们在大量的文本数据上进行训练&#xff0…...

jenkins同一jar包部署到多台服务器

文章目录 安装插件配置ssh服务构建完成后执行 没有部署过可以跟这个下面的步骤先部署一遍&#xff0c;我这篇主要讲jenkins同一jar包部署到多台服务器 【Jenkins】部署Springboot项目https://blog.csdn.net/qq_39017153/article/details/131901613 安装插件 Publish Over SSH 这…...

(四)Doceke安装MySQL镜像+Docker启动MySQL容器

Doceke安装MySQL镜像/Docker启动MySQL容器 一、doceke安装MySQL镜像 切换到root用户&#xff0c;su root 。 1、启动Docker 启动&#xff1a;sudo systemctl start docker 停止&#xff1a;systemctl stop docker 重启&#xff1a;systemctl restart docker 查看docker运行…...

Android Studio:Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

原项目使用jdk8&#xff0c;升级gradle后出现的该问题。 java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)at org.codehaus.gro…...

Spring Clould 搜索技术 - elasticsearch

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; 初识ES-什么是elasticsearch&#xff08;P77&#xff0c;P78&#xff09; 1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能…...

android核绑定cpuset配置与检测进程所在核cpuset方法

一、开机阶段 开机有如下阶段。抛开开机动画需要的audio、surfaceflinger等进程&#xff0c;大部分android程序是在/data分区加载完整以后开始加载。所以cpuset的配置可以在 post-fs-data之后。注意&#xff0c;init.rc的不同阶段脚本都可能覆盖前面配置的cpuset。配置好检查与…...

Lnton羚通关于如何使用nanoPC-T4 安装OpenCV?

nanoPC-T4 安装 OpenCV Note: OpenCV has been pre-installed in FriendlyCore/FriendlyDesktop (Version after 201905) and does not require manual installation. Please download the latest FriendlyCore/FriendlyDesktop Image file from the following URL: http://do…...

内存泄漏:前端开发者的噩梦——内存泄露的原因及排查

在前端开发中&#xff0c;内存泄漏是一个常见但令人头疼的问题。它会导致应用程序变得缓慢&#xff0c;不稳定&#xff0c;最终可能崩溃。本文将介绍内存泄漏的概念、常见泄漏原因以及如何排查和预防内存泄漏。 什么是内存泄漏&#xff1f; 内存泄漏是指应用程序中的内存被错…...

高效使用ChatGPT之ChatGPT客户端

ChatGPT客户端&#xff0c;支持Mac, Windows, and Linux 下载地址见文章结尾 软件截图 Windows: Mac&#xff1a; 说明 chatgpt桌面版&#xff0c;相比于网页版的chatgpt&#xff0c;最大的特色是支持历史聊天对话记录导出&#xff0c;且支持三种格式&#xff1a;PNG、PDF、…...

【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据

【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据 文章目录 【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据前言出现的背景一、TDSQL-C数据库是什么&#xff1f;二、TDSQL-C 的特点三、TDSQL-C的应用场景四、基于TD…...

leetcode 6450. k-avoiding 数组的最小总和

给你两个整数 n 和 k 。 对于一个由 不同 正整数组成的数组&#xff0c;如果其中不存在任何求和等于 k 的不同元素对&#xff0c;则称其为 k-avoiding 数组。 返回长度为 n 的 k-avoiding 数组的可能的最小总和。 示例 1&#xff1a; 输入&#xff1a;n 5, k 4 输出&#…...

变压器绝缘油耐压试验

试验目的 绝缘油是电气设备常用的绝缘、 灭弧和冷却介质。 为保证它在运行过程中具有良好的性能&#xff0c; 必须定期对其进行各项试验&#xff0c; 尤其是耐压试验。 绝缘油的耐压试验是在专用的击穿电压试验器中进行的&#xff0c; 试验器包括一个瓷质或玻璃油杯、 两个直径…...

Windows控制台API官方文档

2023年8月21日&#xff0c;周下午 中文文档&#xff1a;控制台函数 - Windows Console | Microsoft Learn 英文文档&#xff1a;Console Functions - Windows Console | Microsoft Learn...