自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 通过命令模拟pod创建

创建业务容器:运行时随后创建业务容器(如 Nginx),并通过指定 network namespace 路径,使其直接加入 pause 容器所在的 Network Namespace,从而实现网络共享。# 10.244.1.0/24(Pod网段),且要从主机的物理网卡(假设是eth0)出去的流量,将其源IP伪装成主机自己的IP。我们将手动模拟 CNI(bridge)插件的工作:创建 veth pair,连接容器和网桥,分配 IP,设置路由。为容器内的 eth0 分配 IP 并设置路由,网关指向网桥。

2025-12-21 14:41:28 308

原创 基于PySide6实现DockWidget内部组件自动换行布局

self.button_height = first_button.sizeHint().height() + self.v_spacing + 10 # 根据测试这里+10容差可以防止出现程序无限执行rearrangeButtons方法的情况。# 按按钮名称自然排序(1, 2, 3, ..., 10, 11),不排序每次重启程序顺序都会不一样。"""监控ScrollArea内widget的resize事件"""# 如果每行按钮数量没有变化,则不需要重新排列。"""重新排列按钮以适应新的窗口大小"""

2025-12-21 14:40:50 667

原创 【Java】线程池源码解析

场景:当你想调用 shutdown() 关闭线程池时,线程池会去中断那些没有被锁住(即没有在干活)的线程。如果进了队列,必须兜底检查是否有线程活着,如果没有,通过 addWorker(null, false) 创建一个临时工(非核心线程)来处理队列里的活。所以在源码中,凡是涉及对 workers 进行 add(添加线程)或 remove(销毁线程)操作时,都需要获取一把全局锁:mainLock。原因:假设核心线程数(Core)设为 0,或者在任务入队的瞬间,现有的线程刚好都挂了(抛异常)或者都超时销毁了。

2025-12-17 19:21:06 822

原创 [源码系列:手写Spring] AOP第二节:JDK动态代理 - 当AOP遇见动态代理的浪漫邂逅

AOP Alliance是一个为AOP(面向切面编程)提供标准接口的库,你可以把它想象成AOP世界的"联合国"——它定义了各个AOP框架都能理解的"官方语言",让不同的AOP实现能够和平共处、相互协作。随着这两年工作的积累,我对这些基础框架有了更深刻的理解,可以为大家带来更多实际应用中的"避坑指南"。理解了这个基础版本,再去学习完整的Spring AOP源码,就会觉得"原来如此"!这种设计就像一个人既是"建筑设计师"(负责创建),又是"物业经理"(负责运营),确保了整个流程的连贯性。

2025-12-17 19:20:22 538

原创 K8S 中使用 YAML 安装 ECK

Kubernetes Operator 是一种特定的应用控制器,通过 CRD(Custom Resource Definitions,自定义资源定义)扩展 Kubernetes API 的功能,可以用它来创建、配置和管理特定的有状态应用,而不需要直接去使用 Kubernetes 中最原始的一些资源对象,比如 Pod,Deployment,Service 等等。Operator自动创建和管理Kubernetes资源,以实现Elasticsearch集群的期望状态。查看服务状态以及密码信息。

2025-12-15 12:53:08 598

原创 拿着顶级服务器跑慢查询,就像开着法拉利送外卖

然而,线上系统的一次次告警,最终查下来的元凶,往往只是一行漏了索引的 SELECT *,或者一个写在 WHERE 条件里的函数计算。你需要的不只是一个“改代码”的工具,而是一个能看透数据库执行计划、懂索引底层原理的资深 DBA 参谋。每一次优化,都是一次微型的数据库原理这一课。慢慢地,你会发现自己写 SQL 的时候,脑海里会自动浮现出 B+ 树的结构,写出的代码天生就是高性能的。面对几十行复杂的 JOIN 逻辑和晦涩难懂的 Explain 执行计划,即使是工作几年的后端开发,往往也是“两眼一抹黑”。

2025-12-15 12:52:31 325

原创 使用 Docker 快速部署 MinIO 文件存储服务

v:将宿主机目录 /home/admin/minio/data 挂载到容器内 /data,确保数据在容器重启后不丢失(需保证宿主机目录有读写权限);"url": "http://服务器IP:9000", // 注意:应为 S3 API 端口(9000),非控制台端口。访问图片:通过 URL http://服务器IP:9000/桶名/文件名 可直接访问(需确保桶权限允许公开访问)。-v /home/admin/minio/data:/data \ # 挂载数据目录(持久化存储)

2025-12-14 10:43:42 299

原创 基于GA遗传优化的电动汽车光储充电站容量配置

同时,通过对光伏发电系统、储能系统和充电设施的合理配置,提高了系统的可靠性和稳定性,能够更好地满足电动汽车的充电需求。为了缓解这一问题,光储充电站应运而生,它结合了光伏发电、储能系统和电动汽车充电设施,能够有效利用可再生能源,平滑充电负荷曲线,提高电网的稳定性和可靠性。容量配置是光储充电站建设中的关键问题,合理的容量配置能够在满足电动汽车充电需求的同时,降低投资成本,提高系统的经济性。遗传算法作为一种高效的全局搜索算法,能够在复杂的解空间中寻找最优解,因此被广泛应用于光储充电站的容量配置问题中。

2025-12-14 10:42:44 72

原创 带注意力机制的seq2seq实例与测试(Bahdanau Attention)

举一个例子:在日常生活中,比如我们看一幅黑白画(画中有一个红色的苹果,其他的都是黑白的物体,例如香蕉),这个时候我们无意识的看一眼画,很有可能第一个关注的就是这个红色的苹果,但是我有意识的控制眼睛集中去看香蕉,这个时候我关注的就是香蕉。K是V的标签(你可以把K当作是V有关联的部分,不同的K,对应的不同的V),如果没有Attention,R就是苹果,有了Attention,R就可以是香蕉。形状可以是 (批量大小,) 或 (批量大小, 键值对数量)。,这里的W就是我们的注意力矩阵,代表我们关注V中的哪些部分。

2025-12-13 17:50:06 737

原创 【Java】Bean的生命周期——print大法带你了解Bean的生命周期(初探)

System.out.println("4、使用Bean");System.out.println("4、使用Bean");System.out.println("2、依赖注入");System.out.println("2、依赖注入");System.out.println("3、初始化");System.out.println("3、初始化");System.out.println("5、销毁");System.out.println("5、销毁");需要在resource文件夹下定义一个xml文件。

2025-12-13 17:48:56 228

原创 从SGD到AdamW:深度学习优化器演进全解析与实践指南

深度学习中,优化器(Optimizer)是连接模型与数据的桥梁,它负责根据损失函数的梯度来更新模型的参数,以期找到一组能最小化损失的“最优解”。而后,研究者发现Adam在与L2正则化(权重衰减)结合使用时存在一个微妙但重要的问题,AdamW应运而生,通过解耦权重衰减提供了更有效的正则化方案,并迅速成为Transformer等大模型的标配。NAG 对经典动量做了一个聪明的修改:它不计算当前点的梯度,而是先“预估”一下按照当前动量会走到哪里,然后在那个“未来”的点计算梯度,再用这个梯度来修正最终的步进方向。

2025-12-12 11:03:59 724

原创 我来说说读写分离,就是数据库读写分离在ORM中是如何实现的,附上源码

主从备份,主数据库,从数据库,我们都知道,是往主数据库写入,从数据库自动从主数据库复制数据,但是,这里是有延迟的,而且延迟还不低,不说多吧,100ms是很常见的!上面说到了读写分离,在这个框架中,我主要用dbContext的方式实现数据库的相关操作,别问为啥不用仓储,我感觉仓储的存在很奇怪,或者说不够直接,不够灵活!读写分离最大的问题,不是读写分离如何写,而是如何处理实际情况,比如写入了,更新了,你读取的时候还没有读取到,读取到的是旧的!其实在实际开发中,几乎的项目很多是走主库的,很少走从的,为啥呢?

2025-12-12 11:03:15 561

原创 ArrayPool.Shared解说

NET 中频繁创建和销毁数组的情况下会导致垃圾回收器出现严重的内存压力,ArrayPool<T> 通过池化手段有效地降低了数组的分配和垃圾回收器的回收压力,同时 ArrayPool<T> 也是 MemoryPool<T> 和 PipeWriter、PipeReader 的底板。注意这里一个 Bucket 不是 Array的集合,而是Array的集合的集合,我们叫他Partitions。// bucket 是 Partition 的集合,Partition 是 Array 的集合。

2025-12-11 10:07:53 393

原创 [PBR][法线分布]GGX实现方法对比

GGX是一种‌法线分布函数‌(Normal Distribution Function, NDF),用于描述微表面模型中微观几何表面法线的概率分布。GGX分布作为Unity URP中PBR渲染的核心,通过其独特的数学特性和长尾分布,实现了比传统模型更真实的材质表现。// GGX法线分布。// GGX/Trowbridge-Reitz分布函数。‌性能开销‌ ★★☆☆☆ ★★★☆☆ ★☆☆☆☆。‌真实度‌ ★★★★☆ ★★★☆☆ ★★☆☆☆。

2025-12-11 10:07:05 327

原创 简单来讲讲C#中的锁 _

正常情况下,a的值应该是等于1000的,但由于这里使用了Parallel.For,会导致多个线程对同一个值进行++操作,从而导致最终的结果没有1000次。今天来说说C#中的锁,锁在日常开发中还是很常用的,但是用的不得当,或者骚操作比较多那么就会导致死锁,从而导致系统崩溃。这里使用了一个object类型作为锁对象,这也是常见的锁对象,不一定非得使用object类型,其他引用类型也行。上面已经通过简单的例子了解到了什么是锁,已经怎么使用锁,那么在.net9中可以直接使用lock对象作为锁。

2025-12-10 11:39:30 395

原创 不定高元素动画实现方案(上)

通过网络布局,一开始设置grid-template-rows为0fr,这里有一些技巧,如果子元素有内容,0fr是不生效的,要给子元素设置min-height为0;最近接了一个需求,需要实现一个列表,列表可展开收起,展开收起需要有一个动画效果,而列表个数不定且每项内容高度也不固定,所以是一个不定高的收起展开效果,我尝试了如下几中方式,最后选择了我觉得最佳的。其实把高度设为auto,可以让元素高度撑开,但是auto是不会有动画效果的,此时我们可以把max-height设为一个较大的值,这样就实现动画效果了。

2025-12-10 11:38:42 300 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除