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

腾讯云golang一面

在这里插入图片描述

go垃圾回收机制

参考自:https://zhuanlan.zhihu.com/p/334999060

go 1.3 标记清除法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

缺点

在这里插入图片描述

go 1.5 三色标记法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

屏障机制

在这里插入图片描述
在这里插入图片描述

插入屏障

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是如果栈不添加,当全部三色标记扫描之后,栈上有可能依然存在白色对象被引用的情况(如上图的对象9). 所以要对栈重新进行三色标记扫描, 但这次为了对象不丢失, 要对本次标记扫描启动STW暂停. 直到栈空间的三色标记结束。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除屏障

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这种方式的回收精度低,一个对象即使被删除了最后一个指向它的指针也依旧可以活过这一轮,在下一轮GC中被清理掉。

缺点

在这里插入图片描述

go 1.8 混合写屏障

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Golang中的混合写屏障满足弱三色不变式,结合了删除写屏障和插入写屏障的优点,只需要在开始时并发扫描各个goroutine的栈,使其变黑并一直保持,这个过程不需要STW,而标记结束后,因为栈在扫描后始终是黑色的,也无需再进行re-scan操作了,减少了STW的时间。

runtime.finalizer(终结器)

runtime.SetFinalizer 是 Go 语言中的一个函数,用于设置对象的终结器(finalizer)。终结器是一个回调函数,当对象被垃圾回收时会被调用,主要用于执行一些清理操作,如释放资源或关闭文件句柄。

package mainimport ("fmt""runtime"
)type MyStruct struct {Name string
}func main() {obj := &MyStruct{Name: "Example"}runtime.SetFinalizer(obj, func(ms *MyStruct) {fmt.Printf("Finalizing: %s\n", ms.Name)})// 使对象可回收obj = nil// 手动触发垃圾回收(仅用于测试)runtime.GC()// 等待终结器执行// time.Sleep(time.Second) // 可以加上这行来确保输出
}

二维的map按行和按列读取哪个快?

参考自 小林coding
在这里插入图片描述
在这里插入图片描述

golang里比较熟的库?

web:gin
数据库:GORM sqlx go-redis
配置管理:viper
日志管理:zap
消息队列:NSQ
微服务:go-zero
图形处理:barcode

Context放map有什么不好的?

Context 是 golang 中十分重要的接口,用于定义 goroutine 中的上下文信息,context 常用于以下几种情况:

  • 数据传递: 在多个 goroutine 中传递数据
  • 超时管理: 通过配置超时时间,可以方便地配置协程的终止时间
  • 终止协程: 通过使用 cancel() 方法,协程可以很方便地终止,可以批量管理多个协程的终止

Context 中放 map:

  • 不适合存储大对象:context 主要用于传递请求范围的数据(如截止日期、取消信号等),而不是用于存储大对象或共享状态。
  • 可能导致数据竞争:如果多个 goroutine 访问同一个 map,可能会导致数据竞争,除非使用适当的同步机制。
  • 增加内存压力:将大型 map 存储在 context 中可能导致不必要的内存占用,影响性能。
  • 语义混淆:context 的设计初衷是为了传递请求范围的值,使用它来存储 map 可能导致代码可读性降低,其他开发者可能不容易理解上下文的使用意图。

golang基本题:创建5个协程顺序打印

package mainimport ("fmt""sync"
)var N = 5func main() {var wg sync.WaitGroupvar mu sync.Mutexch := make(chan int)wg.Add(1)go func(){defer wg.Done()for i:=1;i<=N;i++{ch<-i}close(ch)}()for i:=1;i<=N;i++{wg.Add(1)go func(){defer wg.Done()mu.Lock()// 即使协程 A 先接收到数据 1,协程 B 可能更早完成 fmt.Println 操作,导致输出顺序错乱。fmt.Println(<-ch)mu.Unlock()}()}wg.Wait()
}

如何用go来实现死锁

在这里插入图片描述

package mainimport ("fmt""sync""time"
)func main() {var m1, m2 sync.Mutexgo func(){// 获取第一个锁m1.Lock()defer m1.Unlock()time.Sleep(time.Second)fmt.Println("尝试获取第二个锁。。。")m2.Lock()defer m2.Unlock()fmt.Println("协程1完成")}()go func(){// 获取第一个锁m2.Lock()defer m2.Unlock()time.Sleep(time.Second)fmt.Println("尝试获取第一个锁。。。")m1.Lock()defer m1.Unlock()fmt.Println("协程2完成")}()select{}
}

线程进程区别?

进程:我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当我们运行这个可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,那么这个运行中的程序,就被称为「进程」(Process)。

线程:线程是进程当中的一条执行流程。同一个进程内多个线程之间可以共享代码段、数据段、打开的文件等资源,但每个线程各自都有一套独立的寄存器和栈,这样可以确保线程的控制流是相对独立的。
在这里插入图片描述

GMP原理调度与线程相关

参考自:https://zhuanlan.zhihu.com/p/713236782
在 Go 语言中,协程被称为 goroutine,它非常轻量,体积只有几 KB,支持自动扩容。Go 语言采用 goroutine 和 channel 提供了更容易使用的并发方法,具体为让一组可复用的函数运行在一组线程上,即使有协程阻塞,该线程的协程也可以被 runtime 调度,转移到其他可运行的线程上。

GM模型

在这里插入图片描述
看上去挺像那么回事,但它存在如下缺点:

每个 M 在创建、销毁、调度 G 的时候需要获取锁,形成了激烈的锁竞争。
如果 M 在执行的某个 G 涉及到创建新协程,M 创建了 G’,此时 M 为了继续执行 G,需要把 G’交给 M’执行,违背了局部性原则。(因为 G’是和 G 相关的,最好放在 M 上执行,而不是其他 M’)。
CPU 在 M 之间的频繁切换导致系统开销增大。

映射关系

GM 模型显然不是一个好的协程调度模型,但软件行业没有什么东西是加一层解决不了的,因此 P(协程调度器) 油然而生。从协程的图来看,一个用户态协程绑定了一个内核态线程,即一个协程绑定一个线程。那么是否可以利用 P,尝试不同的绑定方案?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

G(协程)M(线程)P(Process)调度

在这里插入图片描述

  • 全局 goroutine 队列,同上面介绍的 GM 模型,用于存放等待运行的 G。
  • P 的本地队列:同全局队列类似,存放的也是等待运行的 G,数量不超过 256 个。新建 G’ 时,G’ 优先加入到 P 的本地队列,满足局部性。如果队列满了,会将本地队列的一半 G 和新创建的 G 打乱顺序,一起放入全局队列。
  • P 列表:所有的 P 都在程序启动时创建,并保存在数组中,最多有 GOMAXPROCS (可配置)个。
  • M:线程想运行任务就得获取 P,从 P 的本地队列获取 G,P 队列为空时,M 也会尝试从全局队列拿一批 G 放到 P 的本地队列,或从其他 P 的本地队列偷一半放到自己 P 的本地队列。M 运行 G,G 执行之后,M 会从 P 获取下一个 G,不断重复下去。

P 和 M 的数量

  • P 的数量由 环境变量 $GOMAXPROCS 或者是由 runtime 的方法 GOMAXPROCS() 决定,当 P 的数量 n 确定以后,运行时系统会根据这个数量创建 n 个 P。
  • go 程序启动时,会设置 M 的最大数量,默认 10000,但是内核很难支持这么多的线程数。
  • 当没有足够的 M 来关联 P 并运行其中的可运行的 G 时,比如所有的 M 此时都阻塞住了,而 P 中还有很多就绪任务,就会去寻找空闲的 M,而没有空闲的,就会去创建新的 M。
  • M 与 P 的数量没有绝对关系,一个 M 阻塞,P 就会去创建或者切换另一个 M,所以,即使 P 的默认数量是 1,也有可能会创建很多个 M。

4.调度器的设计策略

(1)work stealing 机制

当本线程无可运行的 G 时,尝试从其他线程绑定 P 的队列中偷取 G,而不是销毁线程。

(2)hand off 机制

当本线程因为 G 进行系统调用阻塞时,线程释放绑定的 P,把 P 转移给其他空闲的线程执行。

(3)利用并行

P 的数量由 GOMAXPROCS 设置,最多有 GOMAXPROCS 个线程分布在多个 CPU上 同时运行。GOMAXPROCS 也限制了并发的程度,比如 GOMAXPROCS = 核数/2,则最多利用了一半的 CPU 核进行并行。

(4)抢占

在 coroutine 中要等待一个协程主动让出 CPU 才执行下一个协程。在Go中,一个 goroutine 最多占用 CPU 10ms,防止其他 goroutine 被饿死。

(5)全局G队列

在新的调度器中依然有全局 G 队列,当 P 的本地队列为空时,优先从全局队列获取,如果全局队列为空时则通过 work stealing 机制从其他P的本地队列偷取 G。

生命周期

在这里插入图片描述

1千个goroutine进行阻塞系统调用会怎么样?

Go运行时(runtime)采用M:N调度模型,将goroutine复用在少量操作系统线程(M)上。当goroutine执行阻塞系统调用(如文件IO、同步网络请求)时,当前线程会被操作系统挂起。此时,Go运行时会创建新的线程(通过pthread或Windows线程)来继续运行其他goroutine。

结果:1000个阻塞系统调用会创建约1000个线程(每个阻塞调用占用一个线程)。

上限限制:Go默认允许最多10,000个线程(通过runtime/debug.SetMaxThreads设置),因此1000个线程不会触发崩溃,但需注意资源消耗。

10个linux的命令

https://blog.csdn.net/qq_24950043/article/details/126294756
cat less tail(tail -f)
scp 文件名 目标服务器账号@目标服务器ip:目标路径
pwd
ps
kill (-9)
ssh 账号@服务器ip -p 端口
nohup

grep

参考:https://blog.csdn.net/u012581020/article/details/131421817

grep match_pattern file_name
grep "match_pattern" file_name

1核,10w个goroutine会崩吗?

在这里插入图片描述
在这里插入图片描述

防火墙,对指定ip端口进行拦截,可以在三次握手四次挥手之间哪一次拦截?

在这里插入图片描述

.经过防火墙端口,tcp怎么存真正的ip?

在这里插入图片描述

相关文章:

腾讯云golang一面

go垃圾回收机制 参考自&#xff1a;https://zhuanlan.zhihu.com/p/334999060 go 1.3 标记清除法 缺点 go 1.5 三色标记法 屏障机制 插入屏障 但是如果栈不添加,当全部三色标记扫描之后,栈上有可能依然存在白色对象被引用的情况(如上图的对象9). 所以要对栈重新进行三色标记扫…...

【Three.js基础学习】35.Particles Cursor Animation Shader

前言 关于着色器应用和画布&#xff0c;实现黑白色照片动态效果 一、代码 script.js ​ import * as THREE from three import { OrbitControls } from three/addons/controls/OrbitControls.js import particlesVertexShader from ./shaders/particles/vertex.glsl import p…...

安卓性能调优之-掉帧测试

掉帧指的是某一帧没有在规定时间内完成渲染&#xff0c;导致 UI 画面不流畅&#xff0c;产生视觉上的卡顿、跳帧现象。 Android目标帧率&#xff1a; 一般情况下&#xff0c;Android设备的屏幕刷新率是60Hz&#xff0c;即每秒需要渲染60帧&#xff08;Frame Per Second, FPS&a…...

六、分布式嵌入

六、分布式嵌入 文章目录 六、分布式嵌入前言一、先要配置torch.distributed环境二、Distributed Embeddings2.1 EmbeddingBagCollectionSharder2.2 ShardedEmbeddingBagCollection 三、Planner总结 前言 我们已经使用了TorchRec的主模块&#xff1a;EmbeddedBagCollection。我…...

13-scala模式匹配

模式匹配是检查某个值&#xff08;value&#xff09;是否匹配某一个模式的机制&#xff0c;一个成功的匹配同时会将匹配值解构为其组成部分。它是Java中的switch语句的升级版&#xff0c;同样可以用于替代一系列的 if/else 语句。 语法 一个模式匹配语句包括一个待匹配的值&a…...

Multisim使用说明详尽版--(2025最新版)

一、Multisim14前言 1.1、主流电路仿真软件 1. Multisim&#xff1a;NI开发的SPICE标准仿真工具&#xff0c;支持模拟/数字电路混合仿真&#xff0c;内置丰富的元件库和虚拟仪器&#xff08;示波器、频谱仪等&#xff09;&#xff0c;适合教学和竞赛设计。官网&#xff1a;艾…...

试一下阿里云新出的mcp服务

前言 MCP这段时间的发展可谓是如火如荼&#xff0c;各种教程也是层出不穷&#xff0c;基本的教程都是如何集成各类型的mcp(比如高德地图)到开发工具(比如cursor)&#xff0c;效果很好&#xff0c;但是有个问题就是&#xff0c;配置教程较为繁琐。 阿里云悄然上线的mcp 今天早上…...

正弦波有效值和平均值(学习笔记)

一个周期的正弦波在坐标轴上围的面积有多大&#xff1f; 一般正弦波以 y Asin(wx)表示&#xff0c;其中A为振幅&#xff0c;W为角速度。周期T 2π/w; 确定积分区间是x 0&#xff0c;到x 2π。 计算绝对值积分&#xff1a; 变量代还&#xff1a;wx θ&#xff0c;dx dθ…...

科研软件分享

这个帖子不定期更新&#xff0c;分享博主自己使用的很好用的科研软件 1 connectedpaper Connected Papers | Find and explore academic papers 2 Semantic Scholar...

Python(12)深入解析Python参数传递:从底层机制到高级应用实践

目录 一、参数传递的编程哲学1.1 参数传递的本质1.2 参数传递类型矩阵 二、参数传递核心规则2.1 位置参数与关键字参数2.2 可变参数处理 三、参数传递高级特性3.1 类型约束与提示3.2 参数内存优化 四、参数传递工程实践4.1 防御性参数校验4.2 参数依赖注入 五、参数传递性能优化…...

MVCC是什么?MVCC的作用是什么?MVCC实现方式有哪些?

MVCC&#xff08;多版本并发控制&#xff09;详解 一、MVCC是什么&#xff1f; MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是数据库管理系统中的一种并发控制机制&#xff0c;它通过维护数据的多个版本来实现非阻塞读和高并发…...

007.Gitlab CICD缓存与附件

文章目录 缓存与产物缓存与产物概述 同分支不同job数据共享默认数据共享不同 Job 数据共享 不同分支相同job数据共享跨分支同job数据共享 不同分支不同job数据共享跨分支跨job数据共享 将文件/夹保存为附件产物介绍创建产物跨job共享产物 缓存与产物 缓存与产物概述 缓存是一…...

A006-基于Selenium和JMeter的吉屋web端的自动化测试设计与实现

产出&#xff1a;自动测试脚本测试用例开题报告自动化测试报告论文jmeter性能测试 --------------------**论文主要内容***----- 第1章 吉屋web端需求分析 1.1 吉屋web端功能需求分析 由于社会对知识获取的需求不断增长&#xff0c;海量繁多的房屋信息已难以依靠传统人工高效…...

图像预处理-边缘填充,透视变换和色彩空间基础

一.边缘填充 一般来图片操作之后会有空区域&#xff0c;就是对空出来的区域进行了像素值的填充&#xff0c;(0&#xff0c;0&#xff0c;0)也就是黑色像素值的填充。 # 默认黑色填充 import cv2 as cvimg cv.imread(../images/lena.png) # 先让原图旋转45度 M cv.getRotatio…...

数字化赋能,众趣科技助力智慧园区深化管理运营能力

数字化、网络化和智能化&#xff0c;被公认为是未来社会发展的大趋势。随着全球物联网、云计算等新一代信息技术不断成熟&#xff0c;传统的招商管理运营模式难以满足园区当下所需&#xff0c;以“园区互联网”为理念的“智慧园区”应运而生&#xff0c;同时融入社交、移动、物…...

《AI大模型应知应会100篇》 第16篇:AI安全与对齐:大模型的灵魂工程

第16篇&#xff1a;AI安全与对齐&#xff1a;大模型的灵魂工程 摘要 在人工智能技术飞速发展的今天&#xff0c;大型语言模型&#xff08;LLM&#xff09;已经成为推动社会进步的重要工具。然而&#xff0c;随着这些模型能力的增强&#xff0c;如何确保它们的行为符合人类的期…...

MCP的另一面

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Golang|锁相关

文章目录 并发安全性与原子操作读写锁分布式锁 并发安全性与原子操作 普通数据类型在并发读写中是会出现问题的&#xff0c;有时候操作会被吞&#xff0c;导致脏写&#xff0c;比如上面n加了两次应该为2&#xff0c;但是由于并发&#xff0c;n最后还是只加了一次 读写锁 sync.…...

大模型面经 | 介绍一下大模型微调方法Prefix Tuning、Prompt Tuning、P-Tuning和P-Tuning v2

大家好,我是皮先生!! 今天给大家分享一些关于大模型面试常见的面试题,希望对大家的面试有所帮助。 往期回顾: 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题一) 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题二) 大模型面经 | 春招、秋招算法…...

JMeter的高并发和高频率和分布式

性能测试 模拟各种正常的、峰值的测试环境&#xff0c;检测程序的各项性能指标是否能够达标 高并发 JMeter中内置了定时器&#xff0c;可以实现时间模式相关的性能测试 需求1:同一时刻100个同学去访问学生管理系统的查询所有学院信息功能&#xff0c;统计高并发情况下平均响…...

设计模式-模板模式

设计模式-模板模式&#xff0c;不用重复写大的逻辑&#xff0c;父类定义好不变的模板方法&#xff0c;子类使用&#xff0c;当框架是父类的框架时可以继承...

手机端可部署的开源大模型; 通义千问2.5训练和推理需要的内存和外存

手机端可部署的开源大模型 目录 手机端可部署的开源大模型Qwen2.5 0.5B 7b 推理采用手机内存需要多少Qwen2.5 0.5B不同量化精度下的内存需求Qwen2.5 7B不同量化精度下的内存需求通义千问2.5训练和推理需要的内存和外存推理阶段1. Qwen2.5 - 7B2. Qwen2.5 - 14B3. Qwen2.5 - 72B…...

记录学习的第二十五天

今天终于又开始更新了。实在是星期六的蓝桥杯给了我一个大大的打击&#xff0c;今天终于好不容易缓过来了&#xff0c;可以好好学算法了。 还是老规划&#xff0c;力扣的每日一题。不过今天的每日一题我之前做过了&#xff0c;就又提交了一次来签到。 之后三道哈希表题目。 我一…...

leetcode03 -- 武汉旅游查询系统

武汉旅游查询系统 1 界面展示 1.首页地图界面 2.查找功能 在查找框内输入查找的景点名称 查找到的景点在地图上进行定位,右侧展示景点的详细信息。 3.添加景点功能 在地图上点击某个位置,系统弹出一个输入框供用户填写景点的名称和描述。 在弹出的输入框中输入景点名…...

R 语言科研绘图第 39 期 --- 饼状图-旭日

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

R语言操作练习2

加载tidyr包&#xff0c;探索table1,table2,table3,table4a, table4b维度和结构 将table4a进行宽转长操作&#xff0c;列名为country,year,population 基于题2&#xff0c;以country为横坐标&#xff0c;population为纵坐标&#xff0c;fillyear&#xff0c;采用dodge形式作柱…...

【秣厉科技】LabVIEW工具包——OpenCV 教程(19):拾遗 - imgproc 基础操作(上)

文章目录 前言imgproc 基础操作&#xff08;上&#xff09;1. 颜色空间2. 直方图3. 二值化4. 腐蚀、膨胀、开闭运算5. 梯度与轮廓6. 简易绘图7. 重映射 总结 前言 需要下载安装OpenCV工具包的朋友&#xff0c;请前往 此处 &#xff1b;系统要求&#xff1a;Windows系统&#x…...

python中,sort(reverse=True)与列表.reverse的区别

python中&#xff0c;sort(reverseTrue)与列表.reverse的区别 在 Python 中&#xff0c;sort(reverseTrue) 和 列表.reverse() 是两种不同的操作&#xff0c;主要区别如下&#xff1a; 1. sort(reverseTrue) 作用&#xff1a; 对列表进行降序排序&#xff08;即从大到小排列…...

Java【多线程】(8)CAS与JUC组件

目录 1.前言 2.正文 2.1CAS概念 2.2CAS两种用途 2.2.1实现原子类 2.2.2实现自旋锁 2.3缺陷&#xff1a;ABA问题 2.4JUC组件 2.4.1Callable接口 2.4.2ReentrantLock&#xff08;与synchronized对比&#xff09; 2.4.3Semaphore信号量 2.4.4CountDownLatch 3.小结 1…...

MATLAB仿真多相滤波抽取与插值的频谱变化(可视化混叠和镜像)

MATLAB画图仿真多相滤波抽取与插值的频谱变化 可视化多速率信号处理抽取与插值的频谱变化 实信号/复信号 可视化混叠和镜像 目录 前言 一、抽取的基本原理 二、MATLAB仿真抽取运算 三、内插的基本原理 四、MATLAB仿真内插运算 总结 前言 在多速率系统中增加信号采样率的运…...

Docker 与 Podman常用知识汇总

一、常用命令的对比汇总 1、基础说明 Docker&#xff1a;传统的容器引擎&#xff0c;使用 dockerd 守护进程。 Podman&#xff1a;无守护进程、无root容器引擎&#xff0c;兼容 Docker CLI。 Podman 命令几乎完全兼容 Docker 命令&#xff0c;只需将 docker 替换为 podman。…...

Spark-SQL简介

Spark-SQL: Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。 Hive and SparkSQL: Drill,Impala.Shark Shark 是伯克利实验室 Spark 生态环境的组件之一. Shark 的出现&#xff0c;使得 SQL-on-Hadoop 的性能比 Hive 有了 10-100 倍的提高。 Spark-S…...

第十八讲 | 支持向量机(SVM):在地类识别与遥感影像分类中的应用

在遥感影像分类与地类识别中,我们经常面临高维特征、多样地表类型以及样本噪声等挑战。**支持向量机(Support Vector Machine,SVM)**作为一种强大的监督分类方法,因其在小样本、高维特征下依然保持良好泛化能力,被广泛用于遥感影像分析、地类判别及环境监测等领域。 📌…...

5.6 GitHub PR分析爆款方案:分层提示工程+LangChain实战,准确率飙升22%

GitHub Sentinel 分析报告核心模块:Pull Request 提示工程设计与实现 关键词:Pull Request 分析、大模型提示工程、分层结构设计、动态参数注入、LangChain 集成 1. PR 分析需求与技术挑战 在 GitHub 开源项目管理中,Pull Request 分析需满足三个核心需求: #mermaid-svg-…...

centos yum install environment-modules

在 CentOS 系统中&#xff0c;environment-modules 是一个非常有用的包&#xff0c;它允许用户管理和动态地加载环境变量&#xff0c;这对于使用特定模块&#xff08;例如软件库或编译器工具链的路径&#xff09;非常方便。如果你想通过 yum 安装 environment-modules&#xff…...

Spring Boot + ShardingSphere 分库分表实战:电商订单场景案例

摘要&#xff1a;本文通过电商系统中订单表分库分表的实际案例&#xff0c;结合Spring Boot和ShardingSphere框架&#xff0c;详细讲解如何实现水平分库分表&#xff0c;解决海量数据存储与查询性能问题。 一、场景分析 在电商系统中&#xff0c;订单表随着业务增长可能面临以…...

C++ 指针从入门到精通实战:全面掌握指针的概念与应用

C 指针从入门到精通实战&#xff1a;全面掌握指针的概念与应用 指针&#xff08;Pointer&#xff09;是C中一个极其重要且强大的概念&#xff0c;它赋予了程序员直接操作内存的能力&#xff0c;从而实现高效的代码和复杂的数据结构。然而&#xff0c;指针的使用也伴随着诸多挑…...

C++ 智能指针底层逻辑揭秘:优化内存管理的核心技术解读

目录 0.为什么需要智能指针&#xff1f; 1.智能指针的使用及原理 RAII&#xff1a; 智能指针的原理&#xff1a; 2.智能指针有哪些&#xff1f; std::auto_ptr std::unique_ptr std::shared_ptr std::weak_ptr 0.为什么需要智能指针&#xff1f; 想要回答这个问题&…...

Android基础入门、Android常见界面布局基础练习

第1章 Android基础入门、第2章Android常见界面布局 一. 填空题 1. (填空题)如果希望在XML布局文件中调用颜色资源&#xff0c;可以使用_____调用。 正确答案&#xff1a; (1) color 2. (填空题)Android程序入口的Activity是在_____文件中注册的。 正确答案&#xff1a; (1…...

Spring Cloud主要组件介绍

一、Spring Cloud 1、Spring Cloud技术概览 分为:服务治理,链路追踪,消息组件,配置中心,安全控制,分布式任务管理、调度,Cluster工具,Spring Cloud CLI,测试 2、注册中心:常用注册中心(Euerka[AP]、Zookeeper[CP]) 1)Euerka Client(服务提供者)=》注册=》Eue…...

【7】深入学习Buffer缓冲区-Nodejs开发入门

深入学习Buffer缓冲区 前言ASCII码GBK/GB2312UnicodeJavascript转换 BufferBuffer的作用Buffer的创建Buffer.allocBuffer.allocUnsafe(size)Buffer.allocUnsafeSlow(size)Buffer.from(array)Buffer.from(arrayBuffer[, byteOffset[, length]])Buffer.from(buffer)Buffer.from(s…...

酶动力学参数预测,瓶颈识别……中科院深圳先进技术研究院罗小舟分享AI在酶领域的创新应用

蛋白质&#xff0c;作为生命的基石&#xff0c;在生命活动中发挥着关键作用&#xff0c;其结构和功能的研究&#xff0c;对创新药物研发、合成生物学、酶制剂生产等领域&#xff0c;有着极其重要的意义。但传统蛋白质设计面临诸多难题&#xff0c;蛋白质结构复杂&#xff0c;序…...

Dockerfile

Dockerfile Dockerfile 是一个文本文件&#xff0c;其内包含了一条条指令&#xff0c;每一条指令构建镜像的一层&#xff0c;因此每一条指令的内容&#xff0c;就是描述该层应当如何构建。 定制镜像&#xff0c;可以将镜像制作的每一层的修改、安装、构建、操作的命令&#xf…...

Redis高频面试题(含答案)

当然可以&#xff0c;Redis 是面试中非常常见的高频考点&#xff0c;尤其在后台开发、分布式系统、缓存设计等方向&#xff0c;面试官常常通过 Redis 来考察你的高并发处理能力、系统设计能力和对缓存一致性理解。 以下是一些典型 Redis 的面试场景题目类型和你可以如何回答的…...

#3 物联网 的标准

商业化的技术都有标准&#xff0c; 标准的本质就是 可以重复多次实现的方法。而这些方法都是设定物联网的那些人布局的&#xff0c;当然在保证按方法操作的结果是属于物联网这个基本的操作里面&#xff0c;藏着的是对某些利益团队的维护&#xff0c;这里大家知道就可以了。 除 …...

Moviepy 视频编辑的Python库,可调整视频分辨率、格式

MoviePy简介 MoviePy 是一个用于视频编辑的Python库&#xff0c;支持视频剪辑、和合成、转码等多种操作&#xff0c;主要有点&#xff1a; 基于 FFmpeg&#xff1a;能够处理几乎所有常见的视频格式。 修改视频分辨率 方法一:指定新的宽度和高度 from moviepy.editor import V…...

【LeetCode 热题 100】哈希 系列

&#x1f4c1;1. 两数之和 本题就是将通过两层遍历优化而成的&#xff0c;为什么需要两层遍历&#xff0c;因为遍历 i 位置时&#xff0c;不知道i-1之前的元素是多少&#xff0c;如果我们知道了&#xff0c;就可以通过两数相加和target比较即可。 因为本题要求返回下标&#xf…...

蓝光三维扫描:汽车冲压模具与钣金件全尺寸检测的精准解决方案

随着汽车市场竞争日趋激烈&#xff0c;新车型开发周期缩短&#xff0c;安全性能要求提高&#xff0c;车身结构愈加复杂。白车身由多达上百个具有复杂空间型面的钣金件&#xff0c;通过一系列工装装配、焊接而成。 钣金件尺寸精度是白车身装配精度的基础。采用新拓三维XTOM蓝光…...

鲲鹏+昇腾部署集群管理软件GPUStack,两台服务器搭建双节点集群【实战详细踩坑篇】

前期说明 配置&#xff1a;2台鲲鹏32C2 2Atlas300I duo&#xff0c;之前看网上文档&#xff0c;目前GPUstack只支持910B芯片&#xff0c;想尝试一下能不能310P也部署试试&#xff0c;毕竟华为的集群软件要收费。 系统&#xff1a;openEuler22.03-LTS 驱动&#xff1a;24.1.rc…...

面试篇 - GPT-1(Generative Pre-Training 1)

GPT-1&#xff08;Generative Pre-Training 1&#xff09; ⭐模型结构 Transformer only-decoder&#xff1a;GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同&#xff0c;但位置编码是可训练的。 注意力机制&#xff1a; 原始Transformer的解…...